forked from KolibriOS/kolibrios
102 lines
2.6 KiB
C
102 lines
2.6 KiB
C
|
//
|
||
|
// ID Engine
|
||
|
// ID_US.h - Header file for the User Manager
|
||
|
// v1.0d1
|
||
|
// By Jason Blochowiak
|
||
|
//
|
||
|
|
||
|
#ifndef __ID_US__
|
||
|
#define __ID_US__
|
||
|
|
||
|
#ifdef __DEBUG__
|
||
|
#define __DEBUG_UserMgr__
|
||
|
#endif
|
||
|
|
||
|
//#define HELPTEXTLINKED
|
||
|
|
||
|
#define MaxX 320
|
||
|
#define MaxY 200
|
||
|
|
||
|
#define MaxHelpLines 500
|
||
|
|
||
|
#define MaxHighName 57
|
||
|
#define MaxScores 7
|
||
|
typedef struct
|
||
|
{
|
||
|
char name[MaxHighName + 1];
|
||
|
int32_t score;
|
||
|
word completed,episode;
|
||
|
} HighScore;
|
||
|
|
||
|
#define MaxGameName 32
|
||
|
#define MaxSaveGames 6
|
||
|
typedef struct
|
||
|
{
|
||
|
char signature[4];
|
||
|
word *oldtest;
|
||
|
boolean present;
|
||
|
char name[MaxGameName + 1];
|
||
|
} SaveGame;
|
||
|
|
||
|
#define MaxString 128 // Maximum input string size
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
int x,y,
|
||
|
w,h,
|
||
|
px,py;
|
||
|
} WindowRec; // Record used to save & restore screen windows
|
||
|
|
||
|
extern boolean ingame, // Set by game code if a game is in progress
|
||
|
loadedgame; // Set if the current game was loaded
|
||
|
extern word PrintX,PrintY; // Current printing location in the window
|
||
|
extern word WindowX,WindowY,// Current location of window
|
||
|
WindowW,WindowH;// Current size of window
|
||
|
|
||
|
extern void (*USL_MeasureString)(const char *,word *,word *);
|
||
|
extern void (*USL_DrawString)(const char *);
|
||
|
|
||
|
extern boolean (*USL_SaveGame)(int),(*USL_LoadGame)(int);
|
||
|
extern void (*USL_ResetGame)(void);
|
||
|
extern SaveGame Games[MaxSaveGames];
|
||
|
extern HighScore Scores[];
|
||
|
|
||
|
#define US_HomeWindow() {PrintX = WindowX; PrintY = WindowY;}
|
||
|
|
||
|
void US_Startup(void);
|
||
|
void US_Shutdown(void);
|
||
|
void US_TextScreen(void),
|
||
|
US_UpdateTextScreen(void),
|
||
|
US_FinishTextScreen(void);
|
||
|
void US_DrawWindow(word x,word y,word w,word h);
|
||
|
void US_CenterWindow(word,word);
|
||
|
void US_SaveWindow(WindowRec *win),
|
||
|
US_RestoreWindow(WindowRec *win);
|
||
|
void US_ClearWindow(void);
|
||
|
void US_SetPrintRoutines(void (*measure)(const char *,word *,word *),
|
||
|
void (*print)(const char *));
|
||
|
void US_PrintCentered(const char *s),
|
||
|
US_CPrint(const char *s),
|
||
|
US_CPrintLine(const char *s),
|
||
|
US_Print(const char *s);
|
||
|
void US_Printf(const char *formatStr, ...);
|
||
|
void US_CPrintf(const char *formatStr, ...);
|
||
|
|
||
|
void US_PrintUnsigned(longword n);
|
||
|
void US_PrintSigned(int32_t n);
|
||
|
void US_StartCursor(void),
|
||
|
US_ShutCursor(void);
|
||
|
void US_CheckHighScore(int32_t score,word other);
|
||
|
void US_DisplayHighScores(int which);
|
||
|
extern boolean US_UpdateCursor(void);
|
||
|
boolean US_LineInput(int x,int y,char *buf,const char *def,boolean escok,
|
||
|
int maxchars,int maxwidth);
|
||
|
|
||
|
void USL_PrintInCenter(const char *s,Rect r);
|
||
|
char *USL_GiveSaveName(word game);
|
||
|
|
||
|
void US_InitRndT(int randomize);
|
||
|
int US_RndT();
|
||
|
|
||
|
#endif
|