if (WCC->Floors == NULL)
GetFloorListHash(Target, TP);
- serv_puts("LKRA");
if (WCC->Rooms == NULL)
+ {
+ serv_puts("LKRA");
WCC->Rooms = GetRoomListHash(Target, TP);
+ }
return WCC->Rooms;
}
+HashList *GetZappedRoomListHash(StrBuf *Target, WCTemplputParams *TP)
+{
+ wcsession *WCC = WC;
+
+ if (WCC->Floors == NULL)
+ GetFloorListHash(Target, TP);
+ serv_puts("LZRM -1");
+ return GetRoomListHash(Target, TP);
+}
+
void FlushFolder(folder *room)
{
int i;
FreeStrBuf(&room->RoomNameParts[i]);
free(room->RoomNameParts);
}
+ memset(room, 0, sizeof(folder));
}
void vDeleteFolder(void *vFolder)
room->QRFlags = StrBufExtractNext_long(Buf, &Pos, '|');
room->floorid = StrBufExtractNext_int(Buf, &Pos, '|');
- room->listorder = StrBufExtractNext_long(Buf, &Pos, '|');
+ room->Order = StrBufExtractNext_long(Buf, &Pos, '|');
room->QRFlags2 = StrBufExtractNext_long(Buf, &Pos, '|');
room->RAFlags = StrBufExtractNext_long(Buf, &Pos, '|');
IKEY(n),
Content,
HFreeStrBuf);
+ n++;
}
}
}
folder *r1 = (folder*) GetSearchPayload(room1);
folder *r2 = (folder*) GetSearchPayload(room2);
- if (r1->listorder == r2->listorder) return 0;
- if (r1->listorder > r2->listorder) return 1;
+ if (r1->Order == r2->Order) return 0;
+ if (r1->Order > r2->Order) return 1;
return -1;
}
void tmplput_ROOM_LISTORDER(StrBuf *Target, WCTemplputParams *TP)
{
folder *Folder = (folder *)CTX;
- StrBufAppendPrintf(Target, "%d", Folder->listorder);
+ StrBufAppendPrintf(Target, "%d", Folder->Order);
}
void tmplput_ROOM_VIEW(StrBuf *Target, WCTemplputParams *TP)
{
return WCC->CurrentFloor == MyFloor;
}
+int ConditionalFloorIsVirtual(StrBuf *Target, WCTemplputParams *TP)
+{
+ Floor *MyFloor = (Floor *)CTX;
+
+ return MyFloor->ID == VIRTUAL_MY_FLOOR;
+}
int ConditionalFloorIsSUBROOM(StrBuf *Target, WCTemplputParams *TP)
{
RegisterNamespace("FLOOR:NAME", 0, 1, tmplput_FLOOR_NAME, NULL, CTX_FLOORS);
RegisterNamespace("FLOOR:NROOMS", 0, 0, tmplput_FLOOR_NROOMS, NULL, CTX_FLOORS);
RegisterConditional(HKEY("COND:FLOOR:ISSUBROOM"), 0, ConditionalFloorIsSUBROOM, CTX_FLOORS);
+ RegisterConditional(HKEY("COND:FLOOR:ISVIRTUAL"), 0, ConditionalFloorIsVirtual, CTX_FLOORS);
RegisterConditional(HKEY("COND:ROOM:REST:ISSUBFLOOR"), 0, ConditionalFloorIsRESTSubFloor, CTX_FLOORS);
RegisterIterator("ITERATE:THISROOM:GNET", 1, NULL, GetNetConfigHash, NULL, NULL, CTX_STRBUFARR, CTX_NONE, IT_NOFLAG);
RegisterIterator("LFLR", 0, NULL, GetFloorListHash, NULL, NULL, CTX_FLOORS, CTX_NONE, IT_FLAG_DETECT_GROUPCHANGE);
RegisterIterator("LKRA", 0, NULL, GetRoomListHashLKRA, NULL, NULL, CTX_ROOMS, CTX_NONE, IT_FLAG_DETECT_GROUPCHANGE);
+ RegisterIterator("LZRM", 0, NULL, GetZappedRoomListHash, NULL, DeleteHash, CTX_ROOMS, CTX_NONE, IT_FLAG_DETECT_GROUPCHANGE);
+
RegisterNamespace("ROOM:INFO:FLOORID", 0, 1, tmplput_ROOM_FLOORID, NULL, CTX_ROOMS);
RegisterNamespace("ROOM:INFO:NAME", 0, 1, tmplput_ROOM_NAME, NULL, CTX_ROOMS);