free(wcf->march);
wcf->march = mptr;
}
-
}
char *pop_march(int desired_floor)
{
static char TheRoom[128];
- int TheFloor = 0;
- int TheOrder = 32767;
int TheWeight = 0;
int weight;
struct march *mptr = NULL;
if (weight > TheWeight) {
TheWeight = weight;
strcpy(TheRoom, mptr->march_name);
+/* TODOO: and now????
TheFloor = mptr->march_floor;
TheOrder = mptr->march_order;
+*/
}
}
return (TheRoom);
}
if (WC->march != NULL) {
next_room = NewStrBufPlain(pop_march(-1), -1);/*TODO: migrate march to strbuf */
+ putlbstr("gotonext", 1);
} else {
next_room = NewStrBufPlain(HKEY("_BASEROOM_"));
}
+void tmplput_ungoto(StrBuf *Target, WCTemplputParams *TP)
+{
+ wcsession *WCC = WC;
+
+ if ((WCC!=NULL) &&
+ (!IsEmptyStr(WCC->ugname)))
+ StrBufAppendBufPlain(Target, WCC->ugname, -1, 0);
+}
+
void _gotonext(void) {
slrp_highest();
gotonext();
}
-void dotskip(void) {
- smart_goto(sbstr("room"));
-}
+int ConditionalHaveUngoto(StrBuf *Target, WCTemplputParams *TP)
+{
+ wcsession *WCC = WC;
+
+ return ((WCC!=NULL) &&
+ (!IsEmptyStr(WCC->ugname)) &&
+ (strcasecmp(WCC->ugname, ChrPtr(WCC->CurRoom.name)) == 0));
+}
void
InitModule_MARCHLIST
(void)
{
+ RegisterConditional("COND:UNGOTO", 0, ConditionalHaveUngoto, CTX_NONE);
+ RegisterNamespace("ROOM:UNGOTO", 0, 0, tmplput_ungoto, NULL, CTX_NONE);
WebcitAddUrlHandler(HKEY("gotonext"), "", 0, _gotonext, NEED_URL);
WebcitAddUrlHandler(HKEY("skip"), "", 0, gotonext, NEED_URL);