aboutsummaryrefslogtreecommitdiff
path: root/engines/tinsel/events.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/tinsel/events.h')
-rw-r--r--engines/tinsel/events.h96
1 files changed, 78 insertions, 18 deletions
diff --git a/engines/tinsel/events.h b/engines/tinsel/events.h
index bc49d68717..b26bb2c5b0 100644
--- a/engines/tinsel/events.h
+++ b/engines/tinsel/events.h
@@ -29,49 +29,99 @@
#include "tinsel/dw.h"
#include "tinsel/coroutine.h"
+#include "common/rect.h"
namespace Tinsel {
+/*
enum BUTEVENT {
- BE_NONE, BE_SLEFT, BE_DLEFT, BE_SRIGHT, BE_DRIGHT,
- BE_LDSTART, BE_LDEND, BE_RDSTART, BE_RDEND,
- BE_UNKNOWN
+ PLR_NOEVENT, PLR_SLEFT, PLR_DLEFT, PLR_SRIGHT, PLR_DRIGHT,
+ PLR_DRAG1_START, PLR_DRAG1_END, PLR_DRAG2_START, PLR_DRAG2_END,
+ PLR_UNKNOWN
};
-
enum KEYEVENT {
- ESC_KEY, QUIT_KEY, SAVE_KEY, LOAD_KEY, OPTION_KEY,
- PGUP_KEY, PGDN_KEY, HOME_KEY, END_KEY,
- WALKTO_KEY, ACTION_KEY, LOOK_KEY,
+ PLR_ESCAPE, PLR_QUIT, PLR_SAVE, PLR_LOAD, PLR_MENU,
+ PLR_PGUP, PLR_PGDN, PLR_HOME, PLR_END,
+ PLR_WALKTO, PLR_ACTION, PLR_LOOK,
NOEVENT_KEY
-};
+};*/
+
+enum PLR_EVENT {
+ // action list
+ PLR_PROV_WALKTO = 0, // Provisional WALKTO !
+ PLR_WALKTO = 1,
+ PLR_LOOK = 2,
+ PLR_ACTION = 3,
+ PLR_ESCAPE = 4,
+ PLR_MENU = 5,
+ PLR_QUIT = 6,
+ PLR_PGUP = 7,
+ PLR_PGDN = 8,
+ PLR_HOME = 9,
+ PLR_END = 10,
+ PLR_DRAG1_START = 11,
+ PLR_DRAG1_END = 12,
+ PLR_DRAG2_START = 13,
+ PLR_DRAG2_END = 14,
+ PLR_JUMP = 15, // Call up scene hopper
+ PLR_NOEVENT = 16,
+ PLR_SAVE = 17,
+ PLR_LOAD = 18,
+
+ // Aliases used for DW1 actions
+ PLR_SLEFT = PLR_WALKTO,
+ PLR_DLEFT = PLR_ACTION,
+ PLR_SRIGHT = PLR_LOOK,
+ PLR_DRIGHT = PLR_NOEVENT,
+ PLR_UNKNOWN = PLR_NOEVENT
+} ;
+
/**
* Reasons for running Glitter code.
* Do not re-order these as equivalent CONSTs are defined in the master
* scene Glitter source file for testing against the event() library function.
+ *
+ * Note: DW2 renames ENTER & LEAVE to WALKIN & WALKOUT, and has a new LEAVE event
*/
-enum USER_EVENT {
- POINTED, WALKTO, ACTION, LOOK,
- ENTER, LEAVE, STARTUP, CONVERSE,
- UNPOINT, PUTDOWN,
- NOEVENT
+enum TINSEL_EVENT {
+ NOEVENT, STARTUP, CLOSEDOWN, POINTED, UNPOINT, WALKIN, WALKOUT,
+ PICKUP, PUTDOWN, WALKTO, LOOK, ACTION, CONVERSE, SHOWEVENT,
+ HIDEEVENT, TALKING, ENDTALK, LEAVE_T2, RESTORE, PROV_WALKTO
+};
+
+enum TINSEL1_EVENT {
+ T1_POINTED, T1_WALKTO, T1_ACTION, T1_LOOK, T1_ENTER, T1_LEAVE, T1_STARTUP, T1_CONVERSE,
+ T1_UNPOINT, T1_PUTDOWN, T1_NOEVENT
};
+const TINSEL1_EVENT TINSEL1_EVENT_MAP[] = {
+ T1_NOEVENT, T1_STARTUP, T1_NOEVENT, T1_POINTED, T1_UNPOINT, T1_ENTER, T1_LEAVE,
+ T1_NOEVENT, T1_PUTDOWN, T1_WALKTO, T1_LOOK, T1_ACTION, T1_CONVERSE, T1_NOEVENT,
+ T1_NOEVENT, T1_NOEVENT, T1_NOEVENT, T1_NOEVENT, T1_NOEVENT, T1_NOEVENT
+};
-void AllowDclick(CORO_PARAM, BUTEVENT be);
+void AllowDclick(CORO_PARAM, PLR_EVENT be);
bool GetControl(int param);
+bool GetControl(void);
+bool ControlIsOn(void);
+void ControlOn(void);
+void ControlOff(void);
+void ControlStartOff(void);
-void RunPolyTinselCode(HPOLYGON hPoly, USER_EVENT event, BUTEVENT be, bool tc);
-void effRunPolyTinselCode(HPOLYGON hPoly, USER_EVENT event, int actor);
+void RunPolyTinselCode(HPOLYGON hPoly, TINSEL_EVENT event, PLR_EVENT be, bool tc);
+void effRunPolyTinselCode(HPOLYGON hPoly, TINSEL_EVENT event, int actor);
-void ProcessButEvent(BUTEVENT be);
-void ProcessKeyEvent(KEYEVENT ke);
+void ProcessButEvent(PLR_EVENT be);
+void ProcessKeyEvent(PLR_EVENT ke);
int GetEscEvents(void);
int GetLeftEvents(void);
+bool LeftEventChange(int myleftEvent);
+
int getUserEvents(void);
uint32 getUserEventTime(void);
@@ -79,6 +129,16 @@ void resetUserEventTime(void);
void ResetEcount(void);
+void PolygonEvent(CORO_PARAM, HPOLYGON hPoly, TINSEL_EVENT tEvent, int actor, bool bWait,
+ int myEscape, bool *result = NULL);
+
+
+void PlayerEvent(PLR_EVENT pEvent, const Common::Point &coOrds);
+
+void ProcessedProvisional(void);
+void ProvNotProcessed(void);
+bool GetProvNotProcessed();
+
} // end of namespace Tinsel
#endif /* TINSEL_EVENTS_H */