1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
#ifndef SLUDGER_H
#define SLUDGER_H
#include <stdint.h>
#include "variable.h"
#include "csludge.h"
#include "language.h"
#ifndef _WIN32
typedef struct _FILETIME {
uint32_t dwLowDateTime;
uint32_t dwHighDateTime;
} FILETIME;
#endif
struct eventHandlers {
int leftMouseFunction;
int leftMouseUpFunction;
int rightMouseFunction;
int rightMouseUpFunction;
int moveMouseFunction;
int focusFunction;
int spaceFunction;
};
struct lineOfCode {
sludgeCommand theCommand;
int32_t param;
};
struct loadedFunction {
int originalNumber;
lineOfCode * compiledLines;
int numLocals, timeLeft, numArgs;
variable * localVars;
variableStack * stack;
variable reg;
unsigned int runThisLine;
loadedFunction * calledBy;
loadedFunction * next;
bool returnSomething, isSpeech, unfreezable, cancelMe;
unsigned char freezerLevel;
};
struct inputType {
bool leftClick, rightClick, justMoved, leftRelease, rightRelease;
int mouseX, mouseY, keyPressed;
};
extern unsigned char * gameIcon;
extern int iconW, iconH;
bool initSludge (char *);
void sludgeDisplay ();
int startNewFunctionNum (unsigned int, unsigned int, loadedFunction *, variableStack * &, bool = true);
bool handleInput ();
void restartFunction (loadedFunction * fun);
bool loadFunctionCode (loadedFunction * newFunc);
void loadHandlers (FILE * fp);
void saveHandlers (FILE * fp);
void finishFunction (loadedFunction * fun);
void abortFunction (loadedFunction * fun);
FILE * openAndVerify (char * filename, char extra1, char extra2, const char * er, int & fileVersion);
void freezeSubs ();
void unfreezeSubs ();
void completeTimers ();
void killSpeechTimers ();
int cancelAFunction (int funcNum, loadedFunction * myself, bool & killedMyself);
#endif
|