Hooked inputs
Cleanup & fix in input management code svn-id: r29267
This commit is contained in:
parent
01e88f1fbf
commit
cc9b0844b9
10 changed files with 262 additions and 214 deletions
|
@ -580,7 +580,7 @@ void valide_noeud(int16 table[], int16 p, int *nclick, int16 solution0[20 + 3][2
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//computePathfinding(returnVar2, params.X, params.Y, var34, var35, currentActor->stepX, currentActor->stepY);
|
//computePathfinding(returnVar2, params.X, params.Y, aniX, aniY, currentActor->stepX, currentActor->stepY);
|
||||||
int16 computePathfinding(int16 *pSolution, int16 x, int16 y, int16 destX,
|
int16 computePathfinding(int16 *pSolution, int16 x, int16 y, int16 destX,
|
||||||
int16 destY, int16 stepX, int16 stepY, int16 oldPathId) {
|
int16 destY, int16 stepX, int16 stepY, int16 oldPathId) {
|
||||||
persoStruct *perso;
|
persoStruct *perso;
|
||||||
|
@ -776,8 +776,8 @@ void processAnimation(void) {
|
||||||
if (((animationStart && !currentActor->flag) || (!animationStart && currentActor->x_dest != -1 && currentActor->y_dest != -1)) && (currentActor->type == 0)) {
|
if (((animationStart && !currentActor->flag) || (!animationStart && currentActor->x_dest != -1 && currentActor->y_dest != -1)) && (currentActor->type == 0)) {
|
||||||
// mouse animation
|
// mouse animation
|
||||||
if (!animationStart) {
|
if (!animationStart) {
|
||||||
var34 = currentActor->x_dest;
|
aniX = currentActor->x_dest;
|
||||||
var35 = currentActor->y_dest;
|
aniY = currentActor->y_dest;
|
||||||
|
|
||||||
currentActor->x_dest = -1;
|
currentActor->x_dest = -1;
|
||||||
currentActor->y_dest = -1;
|
currentActor->y_dest = -1;
|
||||||
|
@ -785,7 +785,7 @@ void processAnimation(void) {
|
||||||
currentActor->flag = 1;
|
currentActor->flag = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
currentActor->pathId = computePathfinding(returnVar2, params.X, params.Y, var34, var35, currentActor->stepX, currentActor->stepY, currentActor->pathId);
|
currentActor->pathId = computePathfinding(returnVar2, params.X, params.Y, aniX, aniY, currentActor->stepX, currentActor->stepY, currentActor->pathId);
|
||||||
|
|
||||||
if (currentActor->pathId == -1) {
|
if (currentActor->pathId == -1) {
|
||||||
if ((currentActor->endDirection != -1) && (currentActor->endDirection != currentActor->startDirection)) {
|
if ((currentActor->endDirection != -1) && (currentActor->endDirection != currentActor->startDirection)) {
|
||||||
|
|
|
@ -109,7 +109,7 @@ backgroundIncrustStruct *addBackgroundIncrust(int16 overlayIdx,
|
||||||
newElement->Y = params.Y;
|
newElement->Y = params.Y;
|
||||||
newElement->scale = params.scale;
|
newElement->scale = params.scale;
|
||||||
newElement->field_E = params.fileIdx;
|
newElement->field_E = params.fileIdx;
|
||||||
newElement->var34 = filesDatabase[params.fileIdx].subData.index;
|
newElement->aniX = filesDatabase[params.fileIdx].subData.index;
|
||||||
newElement->ptr = NULL;
|
newElement->ptr = NULL;
|
||||||
strcpy(newElement->name, filesDatabase[params.fileIdx].subData.name);
|
strcpy(newElement->name, filesDatabase[params.fileIdx].subData.name);
|
||||||
|
|
||||||
|
@ -176,7 +176,7 @@ void loadBackgroundIncrustFromSave(FILE *fileHandle) {
|
||||||
fread(¤t->field_22, 2, 1, fileHandle);
|
fread(¤t->field_22, 2, 1, fileHandle);
|
||||||
fread(¤t->field_24, 2, 1, fileHandle);
|
fread(¤t->field_24, 2, 1, fileHandle);
|
||||||
fread(current->name, 14, 1, fileHandle);
|
fread(current->name, 14, 1, fileHandle);
|
||||||
fread(¤t->var34, 2, 1, fileHandle);
|
fread(¤t->aniX, 2, 1, fileHandle);
|
||||||
|
|
||||||
if (current->size) {
|
if (current->size) {
|
||||||
current->ptr = (uint8 *) mallocAndZero(current->size);
|
current->ptr = (uint8 *) mallocAndZero(current->size);
|
||||||
|
|
|
@ -48,7 +48,7 @@ struct backgroundIncrustStruct {
|
||||||
uint16 field_22;
|
uint16 field_22;
|
||||||
uint16 field_24;
|
uint16 field_24;
|
||||||
char name[14];
|
char name[14];
|
||||||
uint16 var34;
|
uint16 aniX;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern backgroundIncrustStruct backgroundIncrustHead;
|
extern backgroundIncrustStruct backgroundIncrustHead;
|
||||||
|
|
|
@ -605,9 +605,9 @@ int removeFinishedScripts(scriptInstanceStruct *ptrHandle) {
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
int nePasAffichierMenuDialogue;
|
int buttonDown;
|
||||||
int var37 = 0;
|
int selectDown = 0;
|
||||||
int var38 = 0;
|
int menuDown = 0;
|
||||||
|
|
||||||
int getCursorFromObject(int mouseX, int mouseY, int *outX, int *outY) {
|
int getCursorFromObject(int mouseX, int mouseY, int *outX, int *outY) {
|
||||||
int16 var_2;
|
int16 var_2;
|
||||||
|
@ -626,99 +626,101 @@ int getCursorFromObject(int mouseX, int mouseY, int *outX, int *outY) {
|
||||||
|
|
||||||
cellStruct *currentObject = cellHead.prev;
|
cellStruct *currentObject = cellHead.prev;
|
||||||
|
|
||||||
while (currentObject) {
|
while (currentObject)
|
||||||
if (currentObject->overlay >= 0 && overlayTable[currentObject->overlay].alreadyLoaded
|
{
|
||||||
&& (currentObject->type == 4 || currentObject->type == 1
|
if (currentObject->overlay >= 0 && overlayTable[currentObject->overlay].alreadyLoaded && (currentObject->type == 4 || currentObject->type == 1 || currentObject->type == 9 || currentObject->type == 3))
|
||||||
|| currentObject->type == 9 || currentObject->type == 3)) {
|
{
|
||||||
strcpy(objectName,
|
char* pObjectName = getObjectName(currentObject->idx, overlayTable[currentObject->overlay].ovlData->specialString2);
|
||||||
getObjectName(currentObject->idx,
|
if(pObjectName)
|
||||||
overlayTable[currentObject->overlay].ovlData->specialString2));
|
{
|
||||||
|
strcpy(objectName, pObjectName);
|
||||||
|
|
||||||
if (strlen(objectName)) {
|
if (strlen(objectName)) {
|
||||||
if (currentObject->freeze == 0) {
|
if (currentObject->freeze == 0) {
|
||||||
var_2 = currentObject->idx;
|
var_2 = currentObject->idx;
|
||||||
var_4 = currentObject->overlay;
|
var_4 = currentObject->overlay;
|
||||||
var_14 = currentObject->followObjectIdx;
|
var_14 = currentObject->followObjectIdx;
|
||||||
var_16 = currentObject->followObjectOverlayIdx;
|
var_16 = currentObject->followObjectOverlayIdx;
|
||||||
|
|
||||||
getMultipleObjectParam(currentObject->overlay, currentObject->idx, ¶ms);
|
getMultipleObjectParam(currentObject->overlay, currentObject->idx, ¶ms);
|
||||||
|
|
||||||
var_10 = 0;
|
var_10 = 0;
|
||||||
var_E = 0;
|
var_E = 0;
|
||||||
var_C = 0;
|
var_C = 0;
|
||||||
|
|
||||||
if ((var_4 != var_16)
|
if ((var_4 != var_16)
|
||||||
&& (var_2 != var_14)) {
|
&& (var_2 != var_14)) {
|
||||||
getMultipleObjectParam
|
getMultipleObjectParam
|
||||||
(var_16, var_14, ¶ms);
|
(var_16, var_14, ¶ms);
|
||||||
|
|
||||||
var_C = params.X;
|
var_C = params.X;
|
||||||
var_E = params.Y;
|
var_E = params.Y;
|
||||||
var_10 = params.fileIdx;
|
var_10 = params.fileIdx;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (params.var5 >= 0 && params.fileIdx >= 0) {
|
if (params.var5 >= 0 && params.fileIdx >= 0) {
|
||||||
if (currentObject->type == 3) {
|
if (currentObject->type == 3) {
|
||||||
assert(0);
|
|
||||||
|
|
||||||
var_2 = params.scale;
|
|
||||||
var_A = params.X + var_C;
|
|
||||||
|
|
||||||
// TODO: this var3 is stupid, investigate...
|
|
||||||
if ((var_A <= mouseX) && (var_A + params.fileIdx >= mouseX) && (mouseY >= params.Y + var_E) && (params.Y + var_E + var2 >= mouseY)) {
|
|
||||||
*outX = var_16;
|
|
||||||
*outY = var_14;
|
|
||||||
|
|
||||||
return (currentObject->type);
|
|
||||||
}
|
|
||||||
} else if (currentObject->type == 4 ||
|
|
||||||
currentObject->type == 1 ||
|
|
||||||
currentObject->type == 9) {
|
|
||||||
int si;
|
|
||||||
int var_8;
|
|
||||||
int di;
|
|
||||||
|
|
||||||
var_A = params.X + var_C;
|
|
||||||
var_6 = params.Y + var_E;
|
|
||||||
|
|
||||||
di = params.fileIdx;
|
|
||||||
|
|
||||||
if (di < 0) {
|
|
||||||
di += var_10;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* if ((filesDatabase[di].subData.resourceType == 8) && (filesDatabase[di].subData.ptr)) {
|
|
||||||
assert(0);
|
assert(0);
|
||||||
}
|
|
||||||
*/
|
|
||||||
{
|
|
||||||
var_4 = filesDatabase[di].resType;
|
|
||||||
|
|
||||||
if (var_4 == 1) {
|
var_2 = params.scale;
|
||||||
var_C = filesDatabase[di].widthInColumn / 2;
|
var_A = params.X + var_C;
|
||||||
} else {
|
|
||||||
var_C = filesDatabase[di].width;
|
// TODO: this var3 is stupid, investigate...
|
||||||
|
if ((var_A <= mouseX) && (var_A + params.fileIdx >= mouseX) && (mouseY >= params.Y + var_E) && (params.Y + var_E + var2 >= mouseY)) {
|
||||||
|
*outX = var_16;
|
||||||
|
*outY = var_14;
|
||||||
|
|
||||||
|
return (currentObject->type);
|
||||||
|
}
|
||||||
|
} else if (currentObject->type == 4 ||
|
||||||
|
currentObject->type == 1 ||
|
||||||
|
currentObject->type == 9) {
|
||||||
|
int si;
|
||||||
|
int var_8;
|
||||||
|
int di;
|
||||||
|
|
||||||
|
var_A = params.X + var_C;
|
||||||
|
var_6 = params.Y + var_E;
|
||||||
|
|
||||||
|
di = params.fileIdx;
|
||||||
|
|
||||||
|
if (di < 0) {
|
||||||
|
di += var_10;
|
||||||
}
|
}
|
||||||
|
|
||||||
var_8 = filesDatabase[di].height;
|
/* if ((filesDatabase[di].subData.resourceType == 8) && (filesDatabase[di].subData.ptr)) {
|
||||||
|
assert(0);
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
var_4 = filesDatabase[di].resType;
|
||||||
|
|
||||||
var_2 = mouseX - var_A;
|
if (var_4 == 1) {
|
||||||
si = mouseY - var_6;
|
var_C = filesDatabase[di].widthInColumn / 2;
|
||||||
|
} else {
|
||||||
|
var_C = filesDatabase[di].width;
|
||||||
|
}
|
||||||
|
|
||||||
if (var_2 > 0 && var_C > var_2 && si > 0 && var_8 >= si) {
|
var_8 = filesDatabase[di].height;
|
||||||
if (filesDatabase[di].subData.ptr) {
|
|
||||||
if (var_4 == 1) {
|
var_2 = mouseX - var_A;
|
||||||
} else {
|
si = mouseY - var_6;
|
||||||
|
|
||||||
|
if (var_2 > 0 && var_C > var_2 && si > 0 && var_8 >= si) {
|
||||||
|
if (filesDatabase[di].subData.ptr) {
|
||||||
|
if (var_4 == 1) {
|
||||||
|
} else {
|
||||||
|
}
|
||||||
|
|
||||||
|
printf("should compare to mask in getCursorFromObject...\n");
|
||||||
|
|
||||||
|
*outX = var_16;
|
||||||
|
*outY = var_14;
|
||||||
|
|
||||||
|
printf("Selected: %s\n", objectName);
|
||||||
|
|
||||||
|
return currentObject->type;
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("should compare to mask in getCursorFromObject...\n");
|
|
||||||
|
|
||||||
*outX = var_16;
|
|
||||||
*outY = var_14;
|
|
||||||
|
|
||||||
printf("Selected: %s\n", objectName);
|
|
||||||
|
|
||||||
return currentObject->type;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1038,9 +1040,8 @@ int processInventory(void) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int processInput(void) {
|
int processInput(void)
|
||||||
menuStruct *var_5C;
|
{
|
||||||
|
|
||||||
int16 mouseX = 0;
|
int16 mouseX = 0;
|
||||||
int16 mouseY = 0;
|
int16 mouseY = 0;
|
||||||
int16 button = 0;
|
int16 button = 0;
|
||||||
|
@ -1052,28 +1053,31 @@ int processInput(void) {
|
||||||
|
|
||||||
button = 0;
|
button = 0;
|
||||||
|
|
||||||
if (sysKey != -1) {
|
if (sysKey != -1)
|
||||||
|
{
|
||||||
button = sysKey;
|
button = sysKey;
|
||||||
mouseX = var11;
|
mouseX = sysX;
|
||||||
mouseY = var12;
|
mouseY = sysY;
|
||||||
sysKey = -1;
|
sysKey = -1;
|
||||||
} else {
|
}
|
||||||
if (automaticMode == 0) {
|
else if (automaticMode == 0)
|
||||||
getMouseStatus(&main10, &mouseX, &button, &mouseY);
|
{
|
||||||
}
|
getMouseStatus(&main10, &mouseX, &button, &mouseY);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (button) {
|
if (!button)
|
||||||
nePasAffichierMenuDialogue = 0;
|
{
|
||||||
|
buttonDown = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (userDelay) {
|
if (userDelay) {
|
||||||
userDelay--;
|
userDelay--;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
// test both buttons
|
|
||||||
|
|
||||||
if (((button & 3) == 3) || keyboardVar == 0x44 || keyboardVar == 0x53) {
|
// test both buttons
|
||||||
|
if (((button & 3) == 3) || keyboardVar == 0x44 || keyboardVar == 0x53)
|
||||||
|
{
|
||||||
changeCursor(0);
|
changeCursor(0);
|
||||||
keyboardVar = 0;
|
keyboardVar = 0;
|
||||||
return (playerMenu(mouseX, mouseY));
|
return (playerMenu(mouseX, mouseY));
|
||||||
|
@ -1083,100 +1087,118 @@ int processInput(void) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (currentActiveMenu != -1) {
|
if ((currentActiveMenu != -1) && menuTable[currentActiveMenu])
|
||||||
var_5C = menuTable[currentActiveMenu];
|
{
|
||||||
|
updateMenuMouse(mouseX, mouseY, menuTable[currentActiveMenu]);
|
||||||
if (var_5C) {
|
|
||||||
updateMenuMouse(mouseX, mouseY, var_5C);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (var6) {
|
if (dialogueEnabled)
|
||||||
|
{
|
||||||
ASSERT(0);
|
ASSERT(0);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// not in dialogue
|
||||||
|
|
||||||
if (button & 1) {
|
// left click
|
||||||
if (nePasAffichierMenuDialogue == 0) {
|
if ((button & 1) && (buttonDown == 0))
|
||||||
nePasAffichierMenuDialogue = 1;
|
{
|
||||||
|
buttonDown = 1;
|
||||||
|
|
||||||
if (mouseVar1) {
|
// is there a relation
|
||||||
|
if (linkedRelation)
|
||||||
|
{
|
||||||
ASSERT(0);
|
ASSERT(0);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// manage click on object menu
|
||||||
|
if (menuDown == 0)
|
||||||
|
{
|
||||||
|
// Handle left click on an object
|
||||||
|
if (menuTable[0] == 0)
|
||||||
|
{
|
||||||
|
int X;
|
||||||
|
int Y;
|
||||||
|
int objIdx;
|
||||||
|
|
||||||
if (var38 == 0) { // are we in inventory mode ?
|
objIdx = getCursorFromObject(mouseX, mouseY, &X, &Y);
|
||||||
if (menuTable[0] == 0) {
|
|
||||||
int X;
|
|
||||||
int Y;
|
|
||||||
int objIdx;
|
|
||||||
|
|
||||||
objIdx =
|
if (objIdx != -1)
|
||||||
getCursorFromObject(mouseX, mouseY,
|
{
|
||||||
&X, &Y);
|
ASSERT(0);
|
||||||
|
}else {
|
||||||
if (objIdx != -1) {
|
// No object found, we move the character to the cursor
|
||||||
//ASSERT(0);
|
aniX = mouseX;
|
||||||
//moveActor(X,Y,mouseVar1);
|
aniY = mouseY;
|
||||||
} else {
|
animationStart = true;
|
||||||
var34 = mouseX;
|
menuDown = 0;
|
||||||
var35 = mouseY;
|
}
|
||||||
animationStart = true;
|
}
|
||||||
var38 = 0;
|
else
|
||||||
|
{
|
||||||
|
ASSERT(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//ASSERT(0);
|
else
|
||||||
} else {
|
{
|
||||||
if (processInventory()) {
|
// Handle left click in inventory
|
||||||
var37 = 1;
|
if (processInventory())
|
||||||
currentActiveMenu = 0;
|
{
|
||||||
var38 = 0;
|
currentActiveMenu = 0;
|
||||||
} else {
|
selectDown = 1;
|
||||||
|
menuDown = 0;
|
||||||
|
} else {
|
||||||
|
currentActiveMenu = -1;
|
||||||
|
menuDown = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// test right button
|
||||||
|
else if ((button & 2) || (keyboardVar == 0x43) || (keyboardVar == 0x52))
|
||||||
|
{
|
||||||
|
if (buttonDown == 0)
|
||||||
|
{
|
||||||
|
keyboardVar = 0;
|
||||||
|
|
||||||
|
// close object menu if there is no linked relation
|
||||||
|
if ((linkedRelation == 0) && (menuTable[0])) {
|
||||||
|
freeMenu(menuTable[0]);
|
||||||
|
menuTable[0] = NULL;
|
||||||
|
selectDown = 0;
|
||||||
|
menuDown = 0;
|
||||||
currentActiveMenu = -1;
|
currentActiveMenu = -1;
|
||||||
var38 = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
if ((!selectDown) && (!menuDown) && (menuTable[1] == NULL))
|
||||||
|
{
|
||||||
|
buildInventory(mouseX, mouseY);
|
||||||
|
|
||||||
|
if (menuTable[1]) {
|
||||||
|
currentActiveMenu = 1;
|
||||||
|
menuDown = 1;
|
||||||
|
} else {
|
||||||
|
menuDown = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
buttonDown = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
//ASSERT(0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((button & 2) || (keyboardVar == 0x43) || (keyboardVar == 0x52)) {
|
|
||||||
if (nePasAffichierMenuDialogue == 0) {
|
|
||||||
keyboardVar = 0;
|
|
||||||
|
|
||||||
if ((mouseVar1 == 0) && (menuTable[0])) {
|
|
||||||
ASSERT(0);
|
|
||||||
freeMenu(menuTable[0]);
|
|
||||||
menuTable[0] = NULL;
|
|
||||||
var37 = 0;
|
|
||||||
var38 = 0;
|
|
||||||
currentActiveMenu = -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (var37 || var38 || menuTable[1]) {
|
|
||||||
nePasAffichierMenuDialogue = 1;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
buildInventory(mouseX, mouseY);
|
|
||||||
|
|
||||||
if (menuTable[1]) {
|
|
||||||
currentActiveMenu = 1;
|
|
||||||
var38 = 1;
|
|
||||||
} else {
|
|
||||||
var38 = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
nePasAffichierMenuDialogue = 1;
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int oldMouseX;
|
int currentMouseX = 0;
|
||||||
int oldMouseY;
|
int currentMouseY = 0;
|
||||||
|
int currentMouseButton = 0;
|
||||||
|
|
||||||
|
void getMouseStatus(int16 *pMouseVar, int16 *pMouseX, int16 *pMouseButton, int16 *pMouseY)
|
||||||
|
{
|
||||||
|
*pMouseX = currentMouseX;
|
||||||
|
*pMouseY = currentMouseY;
|
||||||
|
*pMouseButton = currentMouseButton;
|
||||||
|
}
|
||||||
|
|
||||||
bool bFastMode = false;
|
bool bFastMode = false;
|
||||||
|
|
||||||
|
@ -1186,18 +1208,41 @@ void manageEvents() {
|
||||||
Common::EventManager * eventMan = g_system->getEventManager();
|
Common::EventManager * eventMan = g_system->getEventManager();
|
||||||
while (eventMan->pollEvent(event)) {
|
while (eventMan->pollEvent(event)) {
|
||||||
switch (event.type) {
|
switch (event.type) {
|
||||||
/* case Common::EVENT_LBUTTONDOWN:
|
case Common::EVENT_LBUTTONDOWN:
|
||||||
* mouseLeft = 1;
|
currentMouseButton |= 1;
|
||||||
* break;
|
break;
|
||||||
* case Common::EVENT_RBUTTONDOWN:
|
case Common::EVENT_LBUTTONUP:
|
||||||
* mouseRight = 1;
|
currentMouseButton &= ~1;
|
||||||
* break;
|
break;
|
||||||
* case Common::EVENT_MOUSEMOVE:
|
case Common::EVENT_RBUTTONDOWN:
|
||||||
* break; */
|
currentMouseButton |= 2;
|
||||||
|
break;
|
||||||
|
case Common::EVENT_RBUTTONUP:
|
||||||
|
currentMouseButton &= ~2;
|
||||||
|
break;
|
||||||
|
case Common::EVENT_MOUSEMOVE:
|
||||||
|
currentMouseX = event.mouse.x;
|
||||||
|
currentMouseY = event.mouse.y;
|
||||||
|
break;
|
||||||
case Common::EVENT_QUIT:
|
case Common::EVENT_QUIT:
|
||||||
g_system->quit();
|
g_system->quit();
|
||||||
break;
|
break;
|
||||||
|
case Common::EVENT_KEYUP:
|
||||||
|
switch(event.kbd.keycode)
|
||||||
|
{
|
||||||
|
case 27: // ESC
|
||||||
|
currentMouseButton &= ~4;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
case Common::EVENT_KEYDOWN:
|
case Common::EVENT_KEYDOWN:
|
||||||
|
switch(event.kbd.keycode)
|
||||||
|
{
|
||||||
|
case 27: // ESC
|
||||||
|
currentMouseButton |= 4;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* switch (event.kbd.keycode) {
|
* switch (event.kbd.keycode) {
|
||||||
* case '\n':
|
* case '\n':
|
||||||
|
@ -1297,10 +1342,6 @@ void manageEvents() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void mainLoop(void) {
|
void mainLoop(void) {
|
||||||
#define SPEED 40 /* Ticks per Frame */
|
|
||||||
#define SLEEP_MIN 20 /* Minimum time a sleep takes, usually 2*GRAN */
|
|
||||||
#define SLEEP_GRAN 1 /* Granularity of sleep */
|
|
||||||
|
|
||||||
int frames = 0; /* Number of frames displayed */
|
int frames = 0; /* Number of frames displayed */
|
||||||
//int32 t_start,t_left;
|
//int32 t_start,t_left;
|
||||||
//uint32 t_end;
|
//uint32 t_end;
|
||||||
|
@ -1316,7 +1357,7 @@ void mainLoop(void) {
|
||||||
initVar4[0] = 0;
|
initVar4[0] = 0;
|
||||||
currentActiveMenu = -1;
|
currentActiveMenu = -1;
|
||||||
main14 = -1;
|
main14 = -1;
|
||||||
mouseVar1 = 0;
|
linkedRelation = 0;
|
||||||
main21 = 0;
|
main21 = 0;
|
||||||
main22 = 0;
|
main22 = 0;
|
||||||
main7 = 0;
|
main7 = 0;
|
||||||
|
|
|
@ -1007,7 +1007,7 @@ void mainDraw(int16 param) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mouseVar1) {
|
if (linkedRelation) {
|
||||||
ASSERT(0);
|
ASSERT(0);
|
||||||
// TODO: draw mouse here
|
// TODO: draw mouse here
|
||||||
}
|
}
|
||||||
|
|
|
@ -168,6 +168,8 @@ void updateMenuMouse(int mouseX, int mouseY, menuStruct *pMenu) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void manageEvents();
|
||||||
|
|
||||||
int processMenu(menuStruct *pMenu) {
|
int processMenu(menuStruct *pMenu) {
|
||||||
int16 mouseX;
|
int16 mouseX;
|
||||||
int16 mouseY;
|
int16 mouseY;
|
||||||
|
@ -198,6 +200,8 @@ int processMenu(menuStruct *pMenu) {
|
||||||
mainDraw(1);
|
mainDraw(1);
|
||||||
flipScreen();
|
flipScreen();
|
||||||
|
|
||||||
|
manageEvents();
|
||||||
|
|
||||||
// readKeyboard();
|
// readKeyboard();
|
||||||
} while (!si);
|
} while (!si);
|
||||||
|
|
||||||
|
@ -224,16 +228,16 @@ int playerMenu(int menuX, int menuY) {
|
||||||
if (currentMenu) {
|
if (currentMenu) {
|
||||||
freeMenu(currentMenu);
|
freeMenu(currentMenu);
|
||||||
currentMenu = 0;
|
currentMenu = 0;
|
||||||
var37 = 0;
|
selectDown = 0;
|
||||||
var38 = 0;
|
menuDown = 0;
|
||||||
main9 = -1;
|
main9 = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (inventoryMenu) {
|
if (inventoryMenu) {
|
||||||
freeMenu(inventoryMenu);
|
freeMenu(inventoryMenu);
|
||||||
inventoryMenu = 0;
|
inventoryMenu = 0;
|
||||||
var37 = 0;
|
selectDown = 0;
|
||||||
var38 = 0;
|
menuDown = 0;
|
||||||
main9 = -1;
|
main9 = -1;
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
|
@ -242,7 +246,7 @@ int playerMenu(int menuX, int menuY) {
|
||||||
} */
|
} */
|
||||||
|
|
||||||
/* mouseVar2 = 0;
|
/* mouseVar2 = 0;
|
||||||
mouseVar1 = 0; */
|
linkedRelation = 0; */
|
||||||
freeDisk();
|
freeDisk();
|
||||||
|
|
||||||
menuTable[0] = createMenu(menuX, menuY, "Menu Joueur");
|
menuTable[0] = createMenu(menuX, menuY, "Menu Joueur");
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
namespace Cruise {
|
namespace Cruise {
|
||||||
|
|
||||||
int16 main10;
|
int16 main10;
|
||||||
|
#if 0
|
||||||
void getMouseStatus(int16 *pMouseVar, int16 *pMouseX, int16 *pMouseButton,
|
void getMouseStatus(int16 *pMouseVar, int16 *pMouseX, int16 *pMouseButton,
|
||||||
int16 *pMouseY) {
|
int16 *pMouseY) {
|
||||||
// mouseStatusStruct localStatus;
|
// mouseStatusStruct localStatus;
|
||||||
|
@ -48,5 +48,6 @@ void getMouseStatus(int16 *pMouseVar, int16 *pMouseX, int16 *pMouseButton,
|
||||||
*pMouseButton |= 4;
|
*pMouseButton |= 4;
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
} // End of namespace Cruise
|
} // End of namespace Cruise
|
||||||
|
|
|
@ -197,13 +197,13 @@ int loadSavegameData(int saveGameIdx) {
|
||||||
fread(&var3, 2, 1, fileHandle);
|
fread(&var3, 2, 1, fileHandle);
|
||||||
fread(&var4, 2, 1, fileHandle);
|
fread(&var4, 2, 1, fileHandle);
|
||||||
fread(&userEnabled, 2, 1, fileHandle);
|
fread(&userEnabled, 2, 1, fileHandle);
|
||||||
fread(&var6, 2, 1, fileHandle);
|
fread(&dialogueEnabled, 2, 1, fileHandle);
|
||||||
fread(&var7, 2, 1, fileHandle);
|
fread(&var7, 2, 1, fileHandle);
|
||||||
fread(&var8, 2, 1, fileHandle);
|
fread(&var8, 2, 1, fileHandle);
|
||||||
fread(&userDelay, 2, 1, fileHandle);
|
fread(&userDelay, 2, 1, fileHandle);
|
||||||
fread(&sysKey, 2, 1, fileHandle);
|
fread(&sysKey, 2, 1, fileHandle);
|
||||||
fread(&var11, 2, 1, fileHandle);
|
fread(&sysX, 2, 1, fileHandle);
|
||||||
fread(&var12, 2, 1, fileHandle);
|
fread(&sysY, 2, 1, fileHandle);
|
||||||
fread(&var13, 2, 1, fileHandle);
|
fread(&var13, 2, 1, fileHandle);
|
||||||
fread(&var14, 2, 1, fileHandle);
|
fread(&var14, 2, 1, fileHandle);
|
||||||
fread(&affichePasMenuJoueur, 2, 1, fileHandle);
|
fread(&affichePasMenuJoueur, 2, 1, fileHandle);
|
||||||
|
@ -224,8 +224,8 @@ int loadSavegameData(int saveGameIdx) {
|
||||||
|
|
||||||
fread(&var30, 2, 1, fileHandle);
|
fread(&var30, 2, 1, fileHandle);
|
||||||
fread(&var31, 2, 1, fileHandle);
|
fread(&var31, 2, 1, fileHandle);
|
||||||
fread(&var34, 2, 1, fileHandle);
|
fread(&aniX, 2, 1, fileHandle);
|
||||||
fread(&var35, 2, 1, fileHandle);
|
fread(&aniY, 2, 1, fileHandle);
|
||||||
int16 bTemp;
|
int16 bTemp;
|
||||||
fread(&bTemp, 2, 1, fileHandle);
|
fread(&bTemp, 2, 1, fileHandle);
|
||||||
animationStart = bTemp != 0;
|
animationStart = bTemp != 0;
|
||||||
|
|
|
@ -57,7 +57,7 @@ int16 numOfDisks;
|
||||||
uint8 scriptNameBuffer[15];
|
uint8 scriptNameBuffer[15];
|
||||||
int16 currentActiveMenu;
|
int16 currentActiveMenu;
|
||||||
int16 main14;
|
int16 main14;
|
||||||
int16 mouseVar1;
|
int16 linkedRelation;
|
||||||
int16 main21;
|
int16 main21;
|
||||||
int16 main22;
|
int16 main22;
|
||||||
int16 main7;
|
int16 main7;
|
||||||
|
@ -114,21 +114,23 @@ int16 var3;
|
||||||
int16 var4;
|
int16 var4;
|
||||||
int16 userEnabled;
|
int16 userEnabled;
|
||||||
int16 var5;
|
int16 var5;
|
||||||
int16 var6;
|
int16 dialogueEnabled;
|
||||||
int16 var7;
|
int16 var7;
|
||||||
int16 var8;
|
int16 var8;
|
||||||
int16 userDelay;
|
int16 userDelay;
|
||||||
|
|
||||||
int16 sysKey = -1;
|
int16 sysKey = -1;
|
||||||
int16 var11 = 0;
|
int16 sysX = 0;
|
||||||
int16 var12;
|
int16 sysY = 0;
|
||||||
|
|
||||||
int16 var13;
|
int16 var13;
|
||||||
int16 var14;
|
int16 var14;
|
||||||
int16 var20;
|
int16 var20;
|
||||||
int16 var23;
|
int16 var23;
|
||||||
int16 var24;
|
int16 var24;
|
||||||
int16 automaticMode;
|
int16 automaticMode;
|
||||||
int16 var34;
|
int16 aniX;
|
||||||
int16 var35;
|
int16 aniY;
|
||||||
bool animationStart;
|
bool animationStart;
|
||||||
|
|
||||||
int16 main17;
|
int16 main17;
|
||||||
|
|
|
@ -159,7 +159,7 @@ extern int16 numOfDisks;
|
||||||
extern uint8 scriptNameBuffer[15];
|
extern uint8 scriptNameBuffer[15];
|
||||||
extern int16 currentActiveMenu;
|
extern int16 currentActiveMenu;
|
||||||
extern int16 main14;
|
extern int16 main14;
|
||||||
extern int16 mouseVar1;
|
extern int16 linkedRelation;
|
||||||
extern int16 main21;
|
extern int16 main21;
|
||||||
extern int16 main22;
|
extern int16 main22;
|
||||||
extern int16 main7;
|
extern int16 main7;
|
||||||
|
@ -215,21 +215,21 @@ extern int16 var3;
|
||||||
extern int16 var4;
|
extern int16 var4;
|
||||||
extern int16 userEnabled;
|
extern int16 userEnabled;
|
||||||
extern int16 var5;
|
extern int16 var5;
|
||||||
extern int16 var6;
|
extern int16 dialogueEnabled;
|
||||||
extern int16 var7;
|
extern int16 var7;
|
||||||
extern int16 var8;
|
extern int16 var8;
|
||||||
extern int16 userDelay;
|
extern int16 userDelay;
|
||||||
extern int16 sysKey;
|
extern int16 sysKey;
|
||||||
extern int16 var11;
|
extern int16 sysX;
|
||||||
extern int16 var12;
|
extern int16 sysY;
|
||||||
extern int16 var13;
|
extern int16 var13;
|
||||||
extern int16 var14;
|
extern int16 var14;
|
||||||
extern int16 var20;
|
extern int16 var20;
|
||||||
extern int16 var23;
|
extern int16 var23;
|
||||||
extern int16 var24;
|
extern int16 var24;
|
||||||
extern int16 automaticMode;
|
extern int16 automaticMode;
|
||||||
extern int16 var34;
|
extern int16 aniX;
|
||||||
extern int16 var35;
|
extern int16 aniY;
|
||||||
extern bool animationStart;
|
extern bool animationStart;
|
||||||
|
|
||||||
extern int16 main17;
|
extern int16 main17;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue