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->XAPass);
FreeStrBuf(&room->Directory);
FreeStrBuf(&room->RoomAide);
+ FreeStrBuf(&room->XInfoText);
FreeStrBuf(&room->name);
if (room->IgnetCfgs[0] == (HashList*) StrBufNOTNULL)
{
folder *Folder = (folder *)CTX;
+ if (Folder == NULL)
+ {
+ wcsession *WCC = WC;
+
+ if (WCC == NULL)
+ return;
+ Folder = &WCC->CurRoom;
+ }
StrBufAppendTemplate(Target, TP, Folder->name, 0);
}
void tmplput_ROOM_BASENAME(StrBuf *Target, WCTemplputParams *TP)
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);
- RegisterNamespace("ROOM:INFO:PRINT_NAME", 0, 1, tmplput_ROOM_NAME, NULL, CTX_ROOMS);/// TODO!
+ RegisterNamespace("ROOM:INFO:PRINT_NAME", 0, 1, tmplput_ROOM_NAME, NULL, CTX_NONE);
RegisterNamespace("ROOM:INFO:BASENAME", 0, 1, tmplput_ROOM_BASENAME, NULL, CTX_ROOMS);
RegisterNamespace("ROOM:INFO:LEVELNTIMES", 1, 2, tmplput_ROOM_LEVEL_N_TIMES, NULL, CTX_ROOMS);