StrBuf *Content;
long WantThisOne;
long PutTo;
+ long State;
WantThisOne = GetTemplateTokenNumber(Target, TP, 5, 0);
if (WantThisOne == 0)
Line = NewStrBuf();
Token = NewStrBuf();
StrBuf_ServGetln(Line);
- if (GetServerStatus(Line, NULL) == 1)
+ if (GetServerStatus(Line, &State) == 1)
{
const char *Pos = NULL;
StrBuf_ServGetln(Line);
StrBufExtract_NextToken(Token, Line, &Pos, '|');
PutTo = GetTokenDefine(SKEY(Token), -1);
- if ((PutTo > 0) && (PutTo < maxRoomNetCfg))
+ if ((PutTo > 0) &&
+ (PutTo < maxRoomNetCfg) &&
+ (Pos != StrBufNOTNULL))
{
int n;
+ HashList *SubH;
if (WCC->CurRoom.IgnetCfgs[PutTo] == NULL)
WCC->CurRoom.IgnetCfgs[PutTo] = NewHash(1, NULL);
- Content = NewStrBuf();
- StrBufExtract_NextToken(Content, Line, &Pos, '|');
+ SubH = NewHash(1, NULL);
n = GetCount(WCC->CurRoom.IgnetCfgs[PutTo]) + 1;
Put(WCC->CurRoom.IgnetCfgs[PutTo],
IKEY(n),
- Content,
- HFreeStrBuf);
+ SubH,
+ HDeleteHash);
+ while (Pos != StrBufNOTNULL) {
+ Content = NewStrBuf();
+ StrBufExtract_NextToken(Content, Line, &Pos, '|');
+ Put(SubH,
+ IKEY(n),
+ Content,
+ HFreeStrBuf);
+ }
}
}
+ else if (State == 550)
+ StrBufAppendBufPlain(WCC->ImportantMsg,
+ _("Higher access is required to access this function."), -1, 0);
+
return WCC->CurRoom.IgnetCfgs[WantThisOne];
}
}
+int ConditionalFloorIsSUBROOM(StrBuf *Target, WCTemplputParams *TP)
+{
+ wcsession *WCC = WC;
+ Floor *MyFloor = (Floor *)CTX;
+
+ return WCC->CurRoom.floorid == MyFloor->ID;
+}
+
+
int ConditionalRoomIsRESTSubRoom(StrBuf *Target, WCTemplputParams *TP)
{
wcsession *WCC = WC;
RegisterNamespace("FLOOR:ID", 0, 0, tmplput_FLOOR_ID, NULL, CTX_FLOORS);
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:ROOM:REST:ISSUBFLOOR"), 0, ConditionalFloorIsRESTSubFloor, CTX_FLOORS);
- RegisterIterator("ITERATE:THISROOM:GNET", 1, NULL, GetNetConfigHash, NULL, NULL, CTX_STRBUF, CTX_NONE, IT_NOFLAG);
+ 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);