Initial commit
This commit is contained in:
146
engines/tinsel/events.h
Normal file
146
engines/tinsel/events.h
Normal file
@@ -0,0 +1,146 @@
|
||||
/* ScummVM - Graphic Adventure Engine
|
||||
*
|
||||
* ScummVM is the legal property of its developers, whose names
|
||||
* are too numerous to list here. Please refer to the COPYRIGHT
|
||||
* file distributed with this source distribution.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* User events processing and utility functions
|
||||
*/
|
||||
|
||||
#ifndef TINSEL_EVENTS_H
|
||||
#define TINSEL_EVENTS_H
|
||||
|
||||
#include "common/coroutines.h"
|
||||
#include "common/rect.h"
|
||||
#include "tinsel/dw.h"
|
||||
|
||||
namespace Tinsel {
|
||||
|
||||
/*
|
||||
enum BUTEVENT {
|
||||
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 {
|
||||
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,
|
||||
PLR_WHEEL_UP = 19,
|
||||
PLR_WHEEL_DOWN = 20,
|
||||
|
||||
PLR_INVENTORY = 21,
|
||||
PLR_NOTEBOOK = 22,
|
||||
|
||||
// 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
|
||||
*/
|
||||
// ': int' because out-of-range values happen in DW2 and we do enum casts (PVS-Studio V1016)
|
||||
enum TINSEL_EVENT : int {
|
||||
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, PLR_EVENT be);
|
||||
bool GetControl(int param);
|
||||
bool GetControl();
|
||||
bool ControlIsOn();
|
||||
void ControlOn();
|
||||
void ControlOff();
|
||||
void ControlStartOff();
|
||||
|
||||
void RunPolyTinselCode(HPOLYGON hPoly, TINSEL_EVENT event, PLR_EVENT be, bool tc);
|
||||
void effRunPolyTinselCode(HPOLYGON hPoly, TINSEL_EVENT event, int actor);
|
||||
|
||||
void ProcessButEvent(PLR_EVENT be);
|
||||
void ProcessKeyEvent(PLR_EVENT ke);
|
||||
|
||||
|
||||
int GetEscEvents();
|
||||
int GetLeftEvents();
|
||||
bool LeftEventChange(int myleftEvent);
|
||||
|
||||
int getUserEvents();
|
||||
|
||||
uint32 getUserEventTime();
|
||||
void resetUserEventTime();
|
||||
|
||||
void ResetEcount();
|
||||
|
||||
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 ProvNotProcessed();
|
||||
bool GetProvNotProcessed();
|
||||
|
||||
} // End of namespace Tinsel
|
||||
|
||||
#endif /* TINSEL_EVENTS_H */
|
||||
Reference in New Issue
Block a user