1 #include "RoomTypes.h"
2 
RoomMemberModeToEnum(RoomMemberMode e)3 const char *RoomMemberModeToEnum(RoomMemberMode e)
4 {
5 	switch (e)
6 	{
7 	case RMM_MODERATOR:
8 		return "RMM_MODERATOR";
9 	case RMM_PUBLIC:
10 		return "RMM_PUBLIC";
11 	case RMM_RESERVED:
12 		return "RMM_RESERVED";
13 	case RMM_SPECTATOR_PUBLIC:
14 		return "RMM_SPECTATOR_PUBLIC";
15 	case RMM_SPECTATOR_RESERVED:
16 		return "RMM_SPECTATOR_RESERVED";
17 	case RMM_ANY_PLAYABLE:
18 		return "RMM_ANY_PLAYABLE";
19 	case RMM_ANY_SPECTATOR:
20 		return "RMM_ANY_SPECTATOR";
21 	}
22 	return "Error in RoomMemberModeToEnum";
23 }
24 
25 static DefaultRoomColumns defaultRoomColumns[DefaultRoomColumns::TC_TABLE_COLUMNS_COUNT] =
26 {
27 	{DefaultRoomColumns::TC_TITLE_NAME, "Title name", DataStructures::Table::STRING},
28 	{DefaultRoomColumns::TC_TITLE_ID, "Title id", DataStructures::Table::NUMERIC},
29 	{DefaultRoomColumns::TC_ROOM_NAME, "Room name", DataStructures::Table::STRING},
30 	{DefaultRoomColumns::TC_ROOM_ID, "Room id", DataStructures::Table::NUMERIC},
31 	{DefaultRoomColumns::TC_TOTAL_SLOTS, "Total slots", DataStructures::Table::NUMERIC},
32 	{DefaultRoomColumns::TC_TOTAL_PUBLIC_PLUS_RESERVED_SLOTS, "Total Public plus reserved slots", DataStructures::Table::NUMERIC},
33 	{DefaultRoomColumns::TC_USED_SLOTS, "Used slots", DataStructures::Table::NUMERIC},
34 	{DefaultRoomColumns::TC_USED_PUBLIC_PLUS_RESERVED_SLOTS, "Used public plus reserved slots", DataStructures::Table::NUMERIC},
35 	{DefaultRoomColumns::TC_REMAINING_SLOTS, "Remaining slots", DataStructures::Table::NUMERIC},
36 	{DefaultRoomColumns::TC_REMAINING_PUBLIC_PLUS_RESERVED_SLOTS, "Remaining public plus reserved slots", DataStructures::Table::NUMERIC},
37 	{DefaultRoomColumns::TC_TOTAL_PUBLIC_SLOTS, "Total public slots", DataStructures::Table::NUMERIC},
38 	{DefaultRoomColumns::TC_TOTAL_RESERVED_SLOTS, "Total reserved slots", DataStructures::Table::NUMERIC},
39 	{DefaultRoomColumns::TC_TOTAL_SPECTATOR_SLOTS, "Total spectator slots", DataStructures::Table::NUMERIC},
40 	{DefaultRoomColumns::TC_USED_PUBLIC_SLOTS, "Used public slots", DataStructures::Table::NUMERIC},
41 	{DefaultRoomColumns::TC_USED_RESERVED_SLOTS, "Used reserved slots", DataStructures::Table::NUMERIC},
42 	{DefaultRoomColumns::TC_USED_SPECTATOR_SLOTS, "Used spectator slots", DataStructures::Table::NUMERIC},
43 	{DefaultRoomColumns::TC_REMAINING_PUBLIC_SLOTS, "Remaining public slots", DataStructures::Table::NUMERIC},
44 	{DefaultRoomColumns::TC_REMAINING_RESERVED_SLOTS, "Remaining reserved slots", DataStructures::Table::NUMERIC},
45 	{DefaultRoomColumns::TC_REMAINING_SPECTATOR_SLOTS, "Remaining spectator slots", DataStructures::Table::NUMERIC},
46 	{DefaultRoomColumns::TC_CREATION_TIME, "Creation time", DataStructures::Table::NUMERIC},
47 	{DefaultRoomColumns::TC_DESTROY_ON_MODERATOR_LEAVE, "Destroy on moderator leave", DataStructures::Table::NUMERIC},
48 	{DefaultRoomColumns::TC_LOBBY_ROOM_PTR, "Lobby room ptr [Internal]", DataStructures::Table::POINTER},
49 };
50 
GetColumnName(int columnId)51 const char *DefaultRoomColumns::GetColumnName(int columnId) {return defaultRoomColumns[columnId].columnName;}
GetColumnType(int columnId)52 DataStructures::Table::ColumnType DefaultRoomColumns::GetColumnType(int columnId) {return defaultRoomColumns[columnId].columnType;}
HasColumnName(const char * columnName)53 bool DefaultRoomColumns::HasColumnName(const char *columnName)
54 {
55 	unsigned i;
56 	for (i=0; i < TC_TABLE_COLUMNS_COUNT; i++)
57 		if (strcmp(columnName,GetColumnName(i))==0)
58 			return true;
59 	return false;
60 }
GetColumnIndex(const char * columnName)61 int DefaultRoomColumns::GetColumnIndex(const char *columnName)
62 {
63 	unsigned i;
64 	for (i=0; i < TC_TABLE_COLUMNS_COUNT; i++)
65 		if (strcmp(columnName,GetColumnName(i))==0)
66 			return i;
67 	return -1;
68 }
AddDefaultColumnsToTable(DataStructures::Table * table)69 void DefaultRoomColumns::AddDefaultColumnsToTable(DataStructures::Table *table)
70 {
71 	unsigned i;
72 	for (i=0; i < DefaultRoomColumns::TC_TABLE_COLUMNS_COUNT; i++)
73 		table->AddColumn(DefaultRoomColumns::GetColumnName(i), DefaultRoomColumns::GetColumnType(i));
74 }
HasDefaultColumns(DataStructures::Table * table)75 bool DefaultRoomColumns::HasDefaultColumns(DataStructures::Table *table)
76 {
77 	unsigned i;
78 	for (i=0; i < DefaultRoomColumns::TC_TABLE_COLUMNS_COUNT; i++)
79 	{
80 		if (table->ColumnIndex(DefaultRoomColumns::GetColumnName(i))!=-1)
81 			return true;
82 	}
83 	return false;
84 }
85