*/
typedef struct _folder {
/* Data citserver tells us about the room */
- StrBuf *name; /* the full name of the room we're talking about */
long QRFlags; /* roomflags */
- int floorid; /* which floor is it on */
-
- long listorder; /* todo */
long QRFlags2; /* Bitbucket NO2 */
-
long RAFlags;
int view; /* whats its default view? inbox/calendar.... */
long lastchange; /* todo... */
/* later evaluated data from the serverdata */
+ StrBuf *name; /* the full name of the room we're talking about */
long nRoomNameParts;
StrBuf **RoomNameParts;
+ int floorid; /* which floor is it on */
const Floor *Floor; /* point to the floor we're on.. */
int hasnewmsgs; /* are there unread messages inside */
int RoomAideLoaded;
StrBuf *RoomAide;
+/* only available if GETR was run */
int XALoaded;
StrBuf *XAPass;
StrBuf *Directory;
long Order;
- long DefView;
-
- int selectable; /* can we select it ??? */
- long num_rooms; /* If this is a floor, how many rooms does it have */
-
/* Only available from the GOTO context... */
long nNewMessages;
int ShowInfo;
int UsersNewMAilboxMessages; /* should we notify the user about new messages? */
int IsTrash;
-
+/* Only available if certain other commands ran */
int XHaveRoomPic;
int XHaveRoomPicLoaded;
int XHaveInfoTextLoaded;
StrBuf *XInfoText;
- HashList *IgnetCfgs[maxRoomNetCfg];
+ int XHaveDownloadCount;
+ int XDownloadCount;
+
+ int BumpUsers; /* if SETR set to 1 to make all users who knew this room to forget about it. */
+ HashList *IgnetCfgs[maxRoomNetCfg + 1];
}folder;
HashList *GetFloorListHash(StrBuf *Target, WCTemplputParams *TP);
void vDeleteFolder(void *vFolder);
void FlushFolder(folder *room);
+void FlushIgnetCfgs(folder *room);
void ParseGoto(folder *proom, StrBuf *Line);
+void FlushRoomlist(void); /* release our caches, so a deleted / zapped room disapears */
+void ReloadCurrentRoom(void); /* Flush cache; reload current state */
+
+HashList *GetFloorListHash(StrBuf *Target, WCTemplputParams *TP);
+HashList *GetRoomListHash(StrBuf *Target, WCTemplputParams *TP);
+int SortRoomsByListOrder(const void *room1, const void *room2);
+void tmplput_roombanner(StrBuf *Target, WCTemplputParams *TP);
+
+
+void LoadRoomAide(void);
+void LoadRoomXA (void);
+void LoadXRoomPic(void);
+void LoadXRoomInfoText(void);
+void LoadXRoomXCountFiles(void);
+
+long gotoroom(const StrBuf *gname);
+
+void slrp_highest(void);
+void remove_march(const StrBuf *aaa);
+void dotskip(void);
+void smart_goto(const StrBuf *next_room);
+void free_march_list(wcsession *wcf);
/*
* wrapper around usual sort-comparator; private rooms will allways be prefered, -1 if one of them NULL