Refactoring

This commit is contained in:
MontyTRC89 2019-04-29 13:10:58 +02:00
parent fce3ca3b5f
commit 5a2842f89d
14 changed files with 307 additions and 368 deletions

View file

@ -54,7 +54,7 @@ GAME_STATUS __cdecl ControlPhase(__int32 numFrames, __int32 demoMode)
// Poll the keyboard and update input variables
if (S_UpdateInput() == -1)
return GAME_STATUS::GAME_STATUS_NONE;
return GAME_STATUS_NONE;
// Has Lara control been disabled?
if (DisableLaraControl)
@ -79,16 +79,16 @@ GAME_STATUS __cdecl ControlPhase(__int32 numFrames, __int32 demoMode)
switch (inventoryResult)
{
case INV_RESULT_LOAD_GAME:
return GAME_STATUS::GAME_STATUS_LOAD_GAME;
return GAME_STATUS_LOAD_GAME;
case INV_RESULT_EXIT_TO_TILE:
return GAME_STATUS::GAME_STATUS_EXIT_TO_TITLE;
return GAME_STATUS_EXIT_TO_TITLE;
}
}
}
// Has level been completed?
if (LevelComplete)
return GAME_STATUS::GAME_STATUS_LEVEL_COMPLETED;
return GAME_STATUS_LEVEL_COMPLETED;
__int32 oldInput = TrInput;
@ -99,11 +99,11 @@ GAME_STATUS __cdecl ControlPhase(__int32 numFrames, __int32 demoMode)
switch (inventoryResult)
{
case INV_RESULT_NEW_GAME:
return GAME_STATUS::GAME_STATUS_NEW_GAME;
return GAME_STATUS_NEW_GAME;
case INV_RESULT_LOAD_GAME:
return GAME_STATUS::GAME_STATUS_LOAD_GAME;
return GAME_STATUS_LOAD_GAME;
case INV_RESULT_EXIT_TO_TILE:
return GAME_STATUS::GAME_STATUS_EXIT_TO_TITLE;
return GAME_STATUS_EXIT_TO_TITLE;
}
}
@ -372,7 +372,7 @@ GAME_STATUS __cdecl ControlPhase(__int32 numFrames, __int32 demoMode)
HealtBarTimer--;
}
return GAME_STATUS::GAME_STATUS_NONE;
return GAME_STATUS_NONE;
}
unsigned __stdcall GameMain(void*)
@ -416,14 +416,14 @@ GAME_STATUS __cdecl DoTitle(__int32 index)
switch (inventoryResult)
{
case INV_RESULT_NEW_GAME:
return GAME_STATUS::GAME_STATUS_NEW_GAME;
return GAME_STATUS_NEW_GAME;
case INV_RESULT_LOAD_GAME:
return GAME_STATUS::GAME_STATUS_LOAD_GAME;
return GAME_STATUS_LOAD_GAME;
case INV_RESULT_EXIT_GAME:
return GAME_STATUS::GAME_STATUS_EXIT_GAME;
return GAME_STATUS_EXIT_GAME;
}
return GAME_STATUS::GAME_STATUS_NEW_GAME;
return GAME_STATUS_NEW_GAME;
}
GAME_STATUS __cdecl DoLevel(__int32 index, __int32 ambient, bool loadFromSavegame)
@ -509,9 +509,9 @@ GAME_STATUS __cdecl DoLevel(__int32 index, __int32 ambient, bool loadFromSavegam
nframes = DrawPhaseGame();
result = ControlPhase(nframes, 0);
if (result == GAME_STATUS::GAME_STATUS_EXIT_TO_TITLE ||
result == GAME_STATUS::GAME_STATUS_LOAD_GAME ||
result == GAME_STATUS::GAME_STATUS_LEVEL_COMPLETED)
if (result == GAME_STATUS_EXIT_TO_TITLE ||
result == GAME_STATUS_LOAD_GAME ||
result == GAME_STATUS_LEVEL_COMPLETED)
{
// Here is the only way for exiting from the loop
SOUND_Stop();

View file

@ -2540,6 +2540,9 @@ void Inventory::DoControlsSettings()
bool closeObject = false;
// Copy configuration to a temporary object
memcpy(&ring->Configuration.KeyboardLayout, &KeyboardLayout1, NUM_CONTROLS);
// Do the passport
while (true)
{
@ -2582,7 +2585,9 @@ void Inventory::DoControlsSettings()
if (ring->selectedIndex == NUM_CONTROLS)
{
memcpy(KeyboardLayout1, ring->Configuration.KeyboardLayout, NUM_CONTROLS);
SaveConfiguration();
closeObject = true;
break;
}
@ -2745,7 +2750,7 @@ void Inventory::DoGraphicsSettings()
{
case INV_DISPLAY_RESOLUTION:
SoundEffect(SFX_MENU_CHOOSE, NULL, 0);
//if (ring->SelectedVideoMode < adapter->DisplayModes.size() - 1)
if (ring->SelectedVideoMode < adapter->DisplayModes.size() - 1)
ring->SelectedVideoMode++;
break;

View file

@ -109,7 +109,7 @@ void __cdecl WildBoarControl(__int16 itemNum)
GetCreatureMood(item, &info, VIOLENT);
if (item->flags)
creature->mood = MOOD_TYPE::ESCAPE_MOOD;
creature->mood = ESCAPE_MOOD;
CreatureMood(item, &info, VIOLENT);
angle = CreatureTurn(item, creature->maximumTurn);
@ -758,7 +758,7 @@ void __cdecl BatControl(__int16 itemNum)
GetCreatureMood(item, &info, VIOLENT);
if (item->flags)
creature->mood = MOOD_TYPE::ESCAPE_MOOD;
creature->mood = ESCAPE_MOOD;
CreatureMood(item, &info, VIOLENT);
angle = CreatureTurn(item, 3640);
@ -802,7 +802,7 @@ void __cdecl BatControl(__int16 itemNum)
else
{
item->goalAnimState = 2;
creature->mood = MOOD_TYPE::BORED_MOOD;
creature->mood = BORED_MOOD;
}
break;
@ -1068,7 +1068,7 @@ void __cdecl TigerControl(__int16 itemNum)
GetCreatureMood(item, &info, 1);
if (creature->alerted && info.zoneNumber != info.enemyZone)
creature->mood = MOOD_TYPE::ESCAPE_MOOD;
creature->mood = ESCAPE_MOOD;
CreatureMood(item, &info, 1);
@ -1080,14 +1080,14 @@ void __cdecl TigerControl(__int16 itemNum)
creature->maximumTurn = 0;
creature->flags = 0;
if (creature->mood == MOOD_TYPE::ESCAPE_MOOD)
if (creature->mood == ESCAPE_MOOD)
{
if (Lara.target != item && info.ahead)
item->goalAnimState = 1;
else
item->goalAnimState = 3;
}
else if (creature->mood == MOOD_TYPE::BORED_MOOD)
else if (creature->mood == BORED_MOOD)
{
__int16 random = GetRandomControl();
if (random < 0x60)
@ -1113,7 +1113,7 @@ void __cdecl TigerControl(__int16 itemNum)
case 2:
creature->maximumTurn = ANGLE(3);
if (creature->mood == MOOD_TYPE::ESCAPE_MOOD || creature->mood == MOOD_TYPE::ATTACK_MOOD)
if (creature->mood == ESCAPE_MOOD || creature->mood == ATTACK_MOOD)
item->goalAnimState = 3;
else if (GetRandomControl() < 0x60)
{
@ -1125,7 +1125,7 @@ void __cdecl TigerControl(__int16 itemNum)
case 3:
creature->maximumTurn = ANGLE(6);
if (creature->mood == MOOD_TYPE::BORED_MOOD)
if (creature->mood == BORED_MOOD)
item->goalAnimState = 1;
else if (creature->flags && info.ahead)
item->goalAnimState = 1;
@ -1136,12 +1136,12 @@ void __cdecl TigerControl(__int16 itemNum)
else
item->goalAnimState = 7;
}
else if (creature->mood != MOOD_TYPE::ATTACK_MOOD && GetRandomControl() < 0x60)
else if (creature->mood != ATTACK_MOOD && GetRandomControl() < 0x60)
{
item->requiredAnimState = 5;
item->goalAnimState = 1;
}
else if (creature->mood == MOOD_TYPE::ESCAPE_MOOD && Lara.target != item && info.ahead)
else if (creature->mood == ESCAPE_MOOD && Lara.target != item && info.ahead)
item->goalAnimState = 1;
creature->flags = 0;
@ -1355,7 +1355,7 @@ void __cdecl RaptorControl(__int16 itemNum)
GetCreatureMood(item, &info, VIOLENT);
CreatureMood(item, &info, VIOLENT);
if (creature->mood == MOOD_TYPE::BORED_MOOD)
if (creature->mood == BORED_MOOD)
creature->maximumTurn >>= 1;
angle = CreatureTurn(item, creature->maximumTurn);
@ -1378,9 +1378,9 @@ void __cdecl RaptorControl(__int16 itemNum)
item->goalAnimState = 8;
else if (info.bite && info.distance < SQUARE(1536))
item->goalAnimState = 4;
else if (creature->mood == MOOD_TYPE::ESCAPE_MOOD && Lara.target != item && info.ahead && !item->hitStatus)
else if (creature->mood == ESCAPE_MOOD && Lara.target != item && info.ahead && !item->hitStatus)
item->goalAnimState = 1;
else if (creature->mood == MOOD_TYPE::BORED_MOOD)
else if (creature->mood == BORED_MOOD)
item->goalAnimState = 2;
else
item->goalAnimState = 3;
@ -1390,7 +1390,7 @@ void __cdecl RaptorControl(__int16 itemNum)
creature->maximumTurn = ANGLE(2);
creature->flags &= ~1;
if (creature->mood != MOOD_TYPE::BORED_MOOD)
if (creature->mood != BORED_MOOD)
item->goalAnimState = 1;
else if (info.ahead && GetRandomControl() < 0x80)
{
@ -1424,12 +1424,12 @@ void __cdecl RaptorControl(__int16 itemNum)
item->goalAnimState = 7;
}
}
else if (info.ahead && creature->mood != MOOD_TYPE::ESCAPE_MOOD && GetRandomControl() < 0x80)
else if (info.ahead && creature->mood != ESCAPE_MOOD && GetRandomControl() < 0x80)
{
item->requiredAnimState = 6;
item->goalAnimState = 1;
}
else if (creature->mood == MOOD_TYPE::BORED_MOOD || (creature->mood == MOOD_TYPE::ESCAPE_MOOD && Lara.target != item && info.ahead))
else if (creature->mood == BORED_MOOD || (creature->mood == ESCAPE_MOOD && Lara.target != item && info.ahead))
item->goalAnimState = 1;
break;
@ -1631,13 +1631,13 @@ void EagleControl(__int16 itemNum)
{
case 7:
item->pos.yPos = item->floor;
if (creature->mood != MOOD_TYPE::BORED_MOOD)
if (creature->mood != BORED_MOOD)
item->goalAnimState = 1;
break;
case 2:
item->pos.yPos = item->floor;
if (creature->mood == MOOD_TYPE::BORED_MOOD)
if (creature->mood == BORED_MOOD)
break;
else
item->goalAnimState = 1;
@ -1648,7 +1648,7 @@ void EagleControl(__int16 itemNum)
if (item->requiredAnimState)
item->goalAnimState = item->requiredAnimState;
if (creature->mood == MOOD_TYPE::BORED_MOOD)
if (creature->mood == BORED_MOOD)
item->goalAnimState = 2;
else if (info.ahead && info.distance < SQUARE(512))
item->goalAnimState = 6;
@ -1769,7 +1769,7 @@ void __cdecl BearControl(__int16 itemNum)
{
item->goalAnimState = item->requiredAnimState;
}
else if (creature->mood == MOOD_TYPE::BORED_MOOD)
else if (creature->mood == BORED_MOOD)
{
item->goalAnimState = 0;
}
@ -1786,10 +1786,10 @@ void __cdecl BearControl(__int16 itemNum)
{
item->goalAnimState = 1;
}
else if (creature->mood != MOOD_TYPE::BORED_MOOD)
else if (creature->mood != BORED_MOOD)
{
item->goalAnimState = 1;
if (creature->mood == MOOD_TYPE::ESCAPE_MOOD)
if (creature->mood == ESCAPE_MOOD)
{
item->requiredAnimState = 0;
}
@ -1811,7 +1811,7 @@ void __cdecl BearControl(__int16 itemNum)
LaraItem->hitStatus = true;
}
if (creature->mood == MOOD_TYPE::BORED_MOOD || LaraItem->hitPoints <= 0)
if (creature->mood == BORED_MOOD || LaraItem->hitPoints <= 0)
{
item->goalAnimState = 1;
}
@ -1840,7 +1840,7 @@ void __cdecl BearControl(__int16 itemNum)
{
item->goalAnimState = item->requiredAnimState;
}
else if (creature->mood == MOOD_TYPE::BORED_MOOD || creature->mood == MOOD_TYPE::ESCAPE_MOOD)
else if (creature->mood == BORED_MOOD || creature->mood == ESCAPE_MOOD)
{
item->goalAnimState = 1;
}
@ -1864,12 +1864,12 @@ void __cdecl BearControl(__int16 itemNum)
{
item->goalAnimState = 4;
}
else if (creature->mood == MOOD_TYPE::ESCAPE_MOOD)
else if (creature->mood == ESCAPE_MOOD)
{
item->goalAnimState = 4;
item->requiredAnimState = 0;
}
else if (creature->mood == MOOD_TYPE::BORED_MOOD || GetRandomControl() < 0x50)
else if (creature->mood == BORED_MOOD || GetRandomControl() < 0x50)
{
item->requiredAnimState = 5;
item->goalAnimState = 4;
@ -1958,7 +1958,7 @@ void __cdecl WolfControl(__int16 itemNum)
case 8:
head = 0;
if (creature->mood == MOOD_TYPE::ESCAPE_MOOD || info.zoneNumber == info.enemyZone)
if (creature->mood == ESCAPE_MOOD || info.zoneNumber == info.enemyZone)
{
item->requiredAnimState = 9;
item->goalAnimState = 1;
@ -1980,7 +1980,7 @@ void __cdecl WolfControl(__int16 itemNum)
case 2:
creature->maximumTurn = ANGLE(2);
if (creature->mood != MOOD_TYPE::BORED_MOOD)
if (creature->mood != BORED_MOOD)
{
item->goalAnimState = 5;
item->requiredAnimState = 0;
@ -1995,13 +1995,13 @@ void __cdecl WolfControl(__int16 itemNum)
case 9:
if (item->requiredAnimState)
item->goalAnimState = item->requiredAnimState;
else if (creature->mood == MOOD_TYPE::ESCAPE_MOOD)
else if (creature->mood == ESCAPE_MOOD)
item->goalAnimState = 3;
else if (info.distance < SQUARE(345) && info.bite)
item->goalAnimState = 12;
else if (creature->mood == MOOD_TYPE::STALK_MOOD)
else if (creature->mood == STALK_MOOD)
item->goalAnimState = 5;
else if (creature->mood == MOOD_TYPE::BORED_MOOD)
else if (creature->mood == BORED_MOOD)
item->goalAnimState = 1;
else
item->goalAnimState = 3;
@ -2016,7 +2016,7 @@ void __cdecl WolfControl(__int16 itemNum)
item->goalAnimState = 12;
else if (info.distance > SQUARE(3072))
item->goalAnimState = 3;
else if (creature->mood == MOOD_TYPE::ATTACK_MOOD)
else if (creature->mood == ATTACK_MOOD)
{
if (!info.ahead || info.distance > SQUARE(1536) ||
(info.enemyFacing < FRONT_ARC && info.enemyFacing > -FRONT_ARC))
@ -2027,7 +2027,7 @@ void __cdecl WolfControl(__int16 itemNum)
item->requiredAnimState = 7;
item->goalAnimState = 9;
}
else if (creature->mood == MOOD_TYPE::BORED_MOOD)
else if (creature->mood == BORED_MOOD)
item->goalAnimState = 9;
break;
@ -2049,12 +2049,12 @@ void __cdecl WolfControl(__int16 itemNum)
item->requiredAnimState = 0;
}
}
else if (creature->mood == MOOD_TYPE::STALK_MOOD && info.distance < SQUARE(3072))
else if (creature->mood == STALK_MOOD && info.distance < SQUARE(3072))
{
item->requiredAnimState = 5;
item->goalAnimState = 9;
}
else if (creature->mood == MOOD_TYPE::BORED_MOOD)
else if (creature->mood == BORED_MOOD)
item->goalAnimState = 9;
break;
@ -2153,7 +2153,7 @@ void TyrannosaurControl(__int16 itemNum)
if (item->touchBits)
LaraItem->hitPoints -= (item->currentAnimState == 3) ? 10 : 1;
creature->flags = (creature->mood != MOOD_TYPE::ESCAPE_MOOD && !info.ahead &&
creature->flags = (creature->mood != ESCAPE_MOOD && !info.ahead &&
info.enemyFacing > -FRONT_ARC && info.enemyFacing < FRONT_ARC);
if (!creature->flags && info.distance > SQUARE(1500) && info.distance < SQUARE(4096) && info.bite)
@ -2166,7 +2166,7 @@ void TyrannosaurControl(__int16 itemNum)
item->goalAnimState = item->requiredAnimState;
else if (info.distance < SQUARE(1500) && info.bite)
item->goalAnimState = 7;
else if (creature->mood == MOOD_TYPE::BORED_MOOD || creature->flags)
else if (creature->mood == BORED_MOOD || creature->flags)
item->goalAnimState = 2;
else
item->goalAnimState = 3;
@ -2175,7 +2175,7 @@ void TyrannosaurControl(__int16 itemNum)
case 2:
creature->maximumTurn = ANGLE(2);
if (creature->mood != MOOD_TYPE::BORED_MOOD || !creature->flags)
if (creature->mood != BORED_MOOD || !creature->flags)
item->goalAnimState = 1;
else if (info.ahead && GetRandomControl() < 0x200)
{
@ -2196,7 +2196,7 @@ void TyrannosaurControl(__int16 itemNum)
item->requiredAnimState = 6;
item->goalAnimState = 1;
}
else if (creature->mood == MOOD_TYPE::BORED_MOOD)
else if (creature->mood == BORED_MOOD)
item->goalAnimState = 1;
break;
@ -2313,7 +2313,7 @@ void __cdecl ApeControl(__int16 itemNum)
item->requiredAnimState = 4;
item->goalAnimState = 1;
}
else if (creature->mood != MOOD_TYPE::ESCAPE_MOOD)
else if (creature->mood != ESCAPE_MOOD)
{
random = (__int16)GetRandomControl();
if (random < 0xA0)
@ -2439,7 +2439,7 @@ void __cdecl RatControl(__int16 itemNum)
switch (item->currentAnimState)
{
case 4:
if (creature->mood == MOOD_TYPE::BORED_MOOD || creature->mood == MOOD_TYPE::STALK_MOOD)
if (creature->mood == BORED_MOOD || creature->mood == STALK_MOOD)
{
__int16 random = (__int16)GetRandomControl();
if (random < 0x500)
@ -2466,7 +2466,7 @@ void __cdecl RatControl(__int16 itemNum)
case 1:
creature->maximumTurn = ANGLE(6);
if (creature->mood == MOOD_TYPE::BORED_MOOD || creature->mood == MOOD_TYPE::STALK_MOOD)
if (creature->mood == BORED_MOOD || creature->mood == STALK_MOOD)
{
random = (__int16)GetRandomControl();
if (random < 0x500)

View file

@ -9,6 +9,7 @@
#include "..\Game\sphere.h"
#include "..\Game\effect2.h"
#include "..\Game\people.h"
#include "..\Game\lara.h"
BITE_INFO baddyGun = { 0, -16, 200, 11 };
BITE_INFO baddySword = { 0, 0, 0, 15 };
@ -341,9 +342,9 @@ void __cdecl BaddyControl(__int16 itemNum)
GetCreatureMood(item, &info, VIOLENT);
// Bike handling
//if (Lara.bike != -1 && info.bite)
// currentCreature->mood == MOOD_TYPE::ESCAPE_MOOD;
// Vehicle handling
if (g_LaraExtra.Vehicle != NO_ITEM && info.bite)
currentCreature->mood == ESCAPE_MOOD;
CreatureMood(item, &info, VIOLENT);
@ -643,7 +644,7 @@ void __cdecl BaddyControl(__int16 itemNum)
item->currentAnimState = 0;
break;
}
if (currentCreature->mood == MOOD_TYPE::ATTACK_MOOD &&
if (currentCreature->mood == ATTACK_MOOD &&
!(currentCreature->jumpAhead) &&
info.distance > SQUARE(1024))
{

View file

@ -9,6 +9,7 @@
#include "..\Game\sphere.h"
#include "..\Game\effect2.h"
#include "..\Game\people.h"
#include "..\Game\lara.h"
BITE_INFO sasGun = { 0, 300, 64, 7 };
@ -84,13 +85,9 @@ void __cdecl SasControl(__int16 itemNum)
GetCreatureMood(item, &info, creature->enemy != LaraItem);
/*if (Lara.bike != -1)
{
if (v44)
{
*(_DWORD *)&creature->gapD[1] = 2;
}
}*/
// Vehicle handling
if (g_LaraExtra.Vehicle != NO_ITEM && info.bite)
creature->mood == ESCAPE_MOOD;
CreatureMood(item, &info, creature->enemy != LaraItem);
angle = CreatureTurn(item, creature->maximumTurn);
@ -181,16 +178,16 @@ void __cdecl SasControl(__int16 itemNum)
}
else
{
if (creature->mood == MOOD_TYPE::ESCAPE_MOOD)
if (creature->mood == ESCAPE_MOOD)
{
item->goalAnimState = 3;
}
else
{
if ((creature->alerted || creature->mood != MOOD_TYPE::BORED_MOOD) &&
if ((creature->alerted || creature->mood != BORED_MOOD) &&
(!item->hitStatus || !creature->reachedGoal && distance <= 0x400000))
{
if (creature->mood == MOOD_TYPE::BORED_MOOD || info.distance <= 0x400000)
if (creature->mood == BORED_MOOD || info.distance <= 0x400000)
{
item->goalAnimState = 2;
break;
@ -226,7 +223,7 @@ void __cdecl SasControl(__int16 itemNum)
}
}
else if (Targetable(item, &info)
|| creature->mood != MOOD_TYPE::BORED_MOOD
|| creature->mood != BORED_MOOD
|| !info.ahead
|| item->hitStatus
/*|| Lara_Bike*/)
@ -246,7 +243,7 @@ void __cdecl SasControl(__int16 itemNum)
}
else if (/*!Lara_Bike ||*/ !(item->aiBits & GUARD) && item->aiBits)
{
if (creature->mood == MOOD_TYPE::ESCAPE_MOOD)
if (creature->mood == ESCAPE_MOOD)
{
item->goalAnimState = 3;
}
@ -306,7 +303,7 @@ void __cdecl SasControl(__int16 itemNum)
item->goalAnimState = 2;
break;
}
if (creature->mood != MOOD_TYPE::ESCAPE_MOOD)
if (creature->mood != ESCAPE_MOOD)
{
if (Targetable(item, &info))
{
@ -314,7 +311,7 @@ void __cdecl SasControl(__int16 itemNum)
}
else
{
if (creature->mood != MOOD_TYPE::BORED_MOOD || creature->mood == MOOD_TYPE::STALK_MOOD &&
if (creature->mood != BORED_MOOD || creature->mood == STALK_MOOD &&
item->aiBits & FOLLOW && info.distance < 0x400000)
{
item->goalAnimState = 2;
@ -418,7 +415,7 @@ void __cdecl SasControl(__int16 itemNum)
case 6:
if (item->currentAnimState == 11 || item->currentAnimState == 13)
{
if (item->goalAnimState != 1 && item->goalAnimState != 14 && (creature->mood == MOOD_TYPE::ESCAPE_MOOD || !Targetable(item, &info)))
if (item->goalAnimState != 1 && item->goalAnimState != 14 && (creature->mood == ESCAPE_MOOD || !Targetable(item, &info)))
{
item->goalAnimState = item->currentAnimState != 11 ? 14 : 1;
}

View file

@ -195,7 +195,7 @@ void __cdecl ScubaControl(__int16 itemNumber)
if (creature->target.y < waterHeight && item->pos.yPos < waterHeight + creature->LOT.fly)
item->goalAnimState = 2;
else if (creature->mood == MOOD_TYPE::ESCAPE_MOOD)
else if (creature->mood == ESCAPE_MOOD)
break;
else if (shoot)
item->goalAnimState = 4;
@ -207,7 +207,7 @@ void __cdecl ScubaControl(__int16 itemNumber)
if (shoot)
neck = -info.angle;
if (!shoot || creature->mood == MOOD_TYPE::ESCAPE_MOOD || (creature->target.y < waterHeight && item->pos.yPos < waterHeight + creature->LOT.fly))
if (!shoot || creature->mood == ESCAPE_MOOD || (creature->target.y < waterHeight && item->pos.yPos < waterHeight + creature->LOT.fly))
item->goalAnimState = 1;
else
item->goalAnimState = 3;
@ -233,7 +233,7 @@ void __cdecl ScubaControl(__int16 itemNumber)
if (creature->target.y > waterHeight)
item->goalAnimState = 1;
else if (creature->mood == MOOD_TYPE::ESCAPE_MOOD)
else if (creature->mood == ESCAPE_MOOD)
break;
else if (shoot)
item->goalAnimState = 6;
@ -245,7 +245,7 @@ void __cdecl ScubaControl(__int16 itemNumber)
if (shoot)
head = info.angle;
if (!shoot || creature->mood == MOOD_TYPE::ESCAPE_MOOD || creature->target.y > waterHeight)
if (!shoot || creature->mood == ESCAPE_MOOD || creature->target.y > waterHeight)
item->goalAnimState = 2;
else
item->goalAnimState = 7;

View file

@ -141,7 +141,7 @@ void __cdecl SkeletonControl(__int16 itemNum)
GetCreatureMood(item, &info, 1);
if (!(item->meshBits & 0x200))
creature->mood = MOOD_TYPE::ESCAPE_MOOD;
creature->mood = ESCAPE_MOOD;
else
CreatureMood(item, &info, 1);
@ -230,9 +230,9 @@ void __cdecl SkeletonControl(__int16 itemNum)
case 2:
creature->flags = 0;
creature->LOT.isJumping = false;
creature->maximumTurn = creature->mood != MOOD_TYPE::ESCAPE_MOOD ? ANGLE(2) : 0;
creature->maximumTurn = creature->mood != ESCAPE_MOOD ? ANGLE(2) : 0;
if (item->aiBits & GUARD
|| !(GetRandomControl() & 0x1F) && (info.distance > SQUARE(1024) || creature->mood != MOOD_TYPE::ATTACK_MOOD))
|| !(GetRandomControl() & 0x1F) && (info.distance > SQUARE(1024) || creature->mood != ATTACK_MOOD))
{
if (!(GetRandomControl() & 0x3F))
{
@ -285,7 +285,7 @@ void __cdecl SkeletonControl(__int16 itemNum)
}
else
{
if (creature->mood == MOOD_TYPE::ESCAPE_MOOD)
if (creature->mood == ESCAPE_MOOD)
{
if (Lara.target == item || !info.ahead || item->hitStatus || !(item->meshBits & 0x200))
{
@ -294,7 +294,7 @@ void __cdecl SkeletonControl(__int16 itemNum)
}
item->goalAnimState = 2;
}
else if (creature->mood != MOOD_TYPE::BORED_MOOD ||
else if (creature->mood != BORED_MOOD ||
item->aiBits & FOLLOW &&
(creature->reachedGoal ||
laraInfo.distance > SQUARE(2048)))
@ -359,7 +359,7 @@ void __cdecl SkeletonControl(__int16 itemNum)
case 15:
creature->flags = 0;
creature->LOT.isJumping = false;
creature->maximumTurn = creature->mood != MOOD_TYPE::BORED_MOOD ? 1092 : 364;
creature->maximumTurn = creature->mood != BORED_MOOD ? 1092 : 364;
if (item->aiBits & PATROL1)
{
item->goalAnimState = 15;
@ -383,11 +383,11 @@ void __cdecl SkeletonControl(__int16 itemNum)
item->goalAnimState = 2;
break;
}
if (creature->mood == MOOD_TYPE::ESCAPE_MOOD)
if (creature->mood == ESCAPE_MOOD)
{
item->goalAnimState = 16;
}
else if (creature->mood != MOOD_TYPE::BORED_MOOD)
else if (creature->mood != BORED_MOOD)
{
if (info.distance >= SQUARE(682))
{
@ -444,7 +444,7 @@ void __cdecl SkeletonControl(__int16 itemNum)
}
else
{
if (creature->mood == MOOD_TYPE::ESCAPE_MOOD)
if (creature->mood == ESCAPE_MOOD)
{
if (Lara.target != item && info.ahead && (item->meshBits & 0x200))
item->goalAnimState = 2;
@ -453,7 +453,7 @@ void __cdecl SkeletonControl(__int16 itemNum)
{
item->goalAnimState = 2;
}
else if (creature->mood != MOOD_TYPE::BORED_MOOD)
else if (creature->mood != BORED_MOOD)
{
if (info.ahead && info.distance < SQUARE(2048))
{

View file

@ -62,7 +62,7 @@ void __cdecl TribemanAxeControl(__int16 itemNum)
GetCreatureMood(item, &info, VIOLENT);
if (creature->enemy == LaraItem && creature->hurtByLara && info.distance > SQUARE(3072) && info.enemyFacing < ANGLE(67) && info.enemyFacing > -ANGLE(67))
creature->mood = MOOD_TYPE::ESCAPE_MOOD;
creature->mood = ESCAPE_MOOD;
CreatureMood(item, &info, VIOLENT);
angle = CreatureTurn(item, creature->maximumTurn);
@ -75,13 +75,13 @@ void __cdecl TribemanAxeControl(__int16 itemNum)
creature->maximumTurn = ANGLE(4);
creature->flags = 0;
if (creature->mood == MOOD_TYPE::BORED_MOOD)
if (creature->mood == BORED_MOOD)
{
creature->maximumTurn = 0;
if (GetRandomControl() < 0x100)
item->goalAnimState = 2;
}
else if (creature->mood == MOOD_TYPE::ESCAPE_MOOD)
else if (creature->mood == ESCAPE_MOOD)
{
if (Lara.target != item && info.ahead && !item->hitStatus)
item->goalAnimState = 1;
@ -116,13 +116,13 @@ void __cdecl TribemanAxeControl(__int16 itemNum)
creature->maximumTurn = ANGLE(4);
creature->flags = 0;
if (creature->mood == MOOD_TYPE::BORED_MOOD)
if (creature->mood == BORED_MOOD)
{
creature->maximumTurn = 0;
if (GetRandomControl() < 0x100)
item->goalAnimState = 2;
}
else if (creature->mood == MOOD_TYPE::ESCAPE_MOOD)
else if (creature->mood == ESCAPE_MOOD)
{
if (Lara.target != item && info.ahead && !item->hitStatus)
item->goalAnimState = 1;
@ -147,7 +147,7 @@ void __cdecl TribemanAxeControl(__int16 itemNum)
creature->maximumTurn = ANGLE(9);
tilt = angle >> 3;
if (creature->mood == MOOD_TYPE::BORED_MOOD)
if (creature->mood == BORED_MOOD)
{
creature->maximumTurn >>= 2;
if (GetRandomControl() < 0x100)
@ -158,7 +158,7 @@ void __cdecl TribemanAxeControl(__int16 itemNum)
item->goalAnimState = 11;
}
}
else if (creature->mood == MOOD_TYPE::ESCAPE_MOOD)
else if (creature->mood == ESCAPE_MOOD)
item->goalAnimState = 3;
else if (info.ahead && info.distance < SQUARE(682))
{
@ -176,7 +176,7 @@ void __cdecl TribemanAxeControl(__int16 itemNum)
creature->maximumTurn = ANGLE(6);
tilt = angle >> 2;
if (creature->mood == MOOD_TYPE::BORED_MOOD)
if (creature->mood == BORED_MOOD)
{
creature->maximumTurn >>= 2;
if (GetRandomControl() < 0x100)
@ -187,7 +187,7 @@ void __cdecl TribemanAxeControl(__int16 itemNum)
item->goalAnimState = 11;
}
}
else if (creature->mood == MOOD_TYPE::ESCAPE_MOOD && Lara.target != item && info.ahead)
else if (creature->mood == ESCAPE_MOOD && Lara.target != item && info.ahead)
item->goalAnimState = 11;
else if (info.bite || info.distance < SQUARE(2048))
{
@ -350,12 +350,12 @@ void __cdecl TribesmanDartsControl(__int16 itemNum)
GetCreatureMood(item, &info, (info.zoneNumber == info.enemyZone ? VIOLENT : TIMID));
if (item->hitStatus && Lara.poisoned >= 0x100 && creature->mood == MOOD_TYPE::BORED_MOOD)
creature->mood = MOOD_TYPE::ESCAPE_MOOD;
if (item->hitStatus && Lara.poisoned >= 0x100 && creature->mood == BORED_MOOD)
creature->mood = ESCAPE_MOOD;
CreatureMood(item, &info, TIMID);
angle = CreatureTurn(item, creature->mood == MOOD_TYPE::BORED_MOOD ? ANGLE(2) : creature->maximumTurn);
angle = CreatureTurn(item, creature->mood == BORED_MOOD ? ANGLE(2) : creature->maximumTurn);
if (info.ahead)
{
headY = info.angle >> 1;
@ -387,7 +387,7 @@ void __cdecl TribesmanDartsControl(__int16 itemNum)
item->goalAnimState = 11;
break;
}
else if (creature->mood == MOOD_TYPE::ESCAPE_MOOD)
else if (creature->mood == ESCAPE_MOOD)
{
if (Lara.target != item && info.ahead && !item->hitStatus)
item->goalAnimState = 1;
@ -400,7 +400,7 @@ void __cdecl TribesmanDartsControl(__int16 itemNum)
item->goalAnimState = 2;
else if (Targetable(item, &info) && info.distance < SQUARE(8192))
item->goalAnimState = 4;
else if (creature->mood == MOOD_TYPE::BORED_MOOD)
else if (creature->mood == BORED_MOOD)
{
if (GetRandomControl() < 0x200)
item->goalAnimState = 2;
@ -437,7 +437,7 @@ void __cdecl TribesmanDartsControl(__int16 itemNum)
item->goalAnimState = 2;
else if (Targetable(item, &info) && info.distance < SQUARE(8192))
item->goalAnimState = 1;
else if (creature->mood == MOOD_TYPE::BORED_MOOD && GetRandomControl() < 0x200)
else if (creature->mood == BORED_MOOD && GetRandomControl() < 0x200)
item->goalAnimState = 2;
else
item->goalAnimState = 3;
@ -452,9 +452,9 @@ void __cdecl TribesmanDartsControl(__int16 itemNum)
item->goalAnimState = 2;
else if (Targetable(item, &info) && info.distance < SQUARE(8192))
item->goalAnimState = 1;
else if (creature->mood == MOOD_TYPE::ESCAPE_MOOD)
else if (creature->mood == ESCAPE_MOOD)
item->goalAnimState = 3;
else if (creature->mood == MOOD_TYPE::BORED_MOOD)
else if (creature->mood == BORED_MOOD)
{
if (GetRandomControl() > 0x200)
item->goalAnimState = 2;
@ -478,9 +478,9 @@ void __cdecl TribesmanDartsControl(__int16 itemNum)
item->goalAnimState = 1;
if (item->aiBits & GUARD)
item->goalAnimState = 11;
else if (creature->mood == MOOD_TYPE::ESCAPE_MOOD && Lara.target != item && info.ahead)
else if (creature->mood == ESCAPE_MOOD && Lara.target != item && info.ahead)
item->goalAnimState = 11;
else if (creature->mood == MOOD_TYPE::BORED_MOOD)
else if (creature->mood == BORED_MOOD)
item->goalAnimState = 1;
break;

View file

@ -9,6 +9,7 @@
#include "..\Game\sphere.h"
#include "..\Game\effect2.h"
#include "..\Game\people.h"
#include "..\Game\lara.h"
BITE_INFO TroopsBite1 = { 0, 300, 64, 7 };
@ -172,6 +173,11 @@ void __cdecl TroopsControl(__int16 itemNum)
}
GetCreatureMood(item, &info, TIMID);
// Vehicle handling
if (g_LaraExtra.Vehicle != NO_ITEM && info.bite)
creature->mood == ESCAPE_MOOD;
CreatureMood(item, &info, TIMID);
angle = CreatureTurn(item, creature->maximumTurn);
@ -223,7 +229,7 @@ void __cdecl TroopsControl(__int16 itemNum)
item->goalAnimState = 2;
joint2 = 0;
}
else if (creature->mood == MOOD_TYPE::ESCAPE_MOOD)
else if (creature->mood == ESCAPE_MOOD)
{
item->goalAnimState = 3;
}
@ -325,14 +331,14 @@ void __cdecl TroopsControl(__int16 itemNum)
item->goalAnimState = 2;
break;
}
if (creature->mood != MOOD_TYPE::ESCAPE_MOOD)
if (creature->mood != ESCAPE_MOOD)
{
if (Targetable(item, &info))
{
item->goalAnimState = 2;
break;
}
if (!creature->mood || creature->mood == MOOD_TYPE::STALK_MOOD &&
if (!creature->mood || creature->mood == STALK_MOOD &&
!(item->aiBits & FOLLOW) && info.distance < SQUARE(2048))
{
item->goalAnimState = 2;
@ -428,7 +434,7 @@ void __cdecl TroopsControl(__int16 itemNum)
case 11:
if (item->goalAnimState != 1
&& (creature->mood == MOOD_TYPE::ESCAPE_MOOD ||
&& (creature->mood == ESCAPE_MOOD ||
info.distance > SQUARE(3072) ||
!Targetable(item, &info)))
{

View file

@ -2633,11 +2633,6 @@ bool Renderer11::ChangeScreenResolution(__int32 width, __int32 height, __int32 f
return true;
}
void Renderer11::Test()
{
}
ID3D11Buffer* Renderer11::createConstantBuffer(__int32 size)
{
ID3D11Buffer* buffer;

View file

@ -1009,7 +1009,6 @@ public:
Renderer11();
~Renderer11();
void Test();
bool Create();
bool EnumerateVideoModes();
bool Initialise(__int32 w, __int32 h, __int32 refreshRate, bool windowed, HWND handle);

View file

@ -402,16 +402,9 @@ bool GameFlow::DoGameflow()
SelectedSaveGame = 0;
SaveGameHeader header;
// DEBUG: test
/*CurrentLevel = 1;
SelectedLevelForNewGame = 0;
gfInitialiseGame = true;
DoLevel(CurrentLevel, 126, false);
return true;*/
// We loop indefinitely, looking for return values of DoTitle or DoLevel
bool loadFromSavegame = false;
while (true)
{
// First we need to fill some legacy variables in PCTomb5.exe
@ -457,17 +450,17 @@ bool GameFlow::DoGameflow()
switch (status)
{
case GAME_STATUS::GAME_STATUS_EXIT_GAME:
case GAME_STATUS_EXIT_GAME:
return true;
case GAME_STATUS::GAME_STATUS_EXIT_TO_TITLE:
case GAME_STATUS_EXIT_TO_TITLE:
CurrentLevel = 0;
break;
case GAME_STATUS::GAME_STATUS_NEW_GAME:
case GAME_STATUS_NEW_GAME:
CurrentLevel = (SelectedLevelForNewGame != 0 ? SelectedLevelForNewGame : 1);
SelectedLevelForNewGame = 0;
gfInitialiseGame = true;
break;
case GAME_STATUS::GAME_STATUS_LOAD_GAME:
case GAME_STATUS_LOAD_GAME:
// Load the header of the savegame for getting the level to load
char fileName[255];
ZeroMemory(fileName, 255);
@ -479,7 +472,7 @@ bool GameFlow::DoGameflow()
loadFromSavegame = true;
break;
case GAME_STATUS::GAME_STATUS_LEVEL_COMPLETED:
case GAME_STATUS_LEVEL_COMPLETED:
if (LevelComplete == Levels.size())
{
// TODO: final credits

View file

@ -1,6 +1,7 @@
#pragma once
#include <Windows.h>
#include "input.h"
#define REGKEY_ROOT "Software\\TR5Main\\TR5Main"
@ -62,24 +63,7 @@ typedef struct GameConfiguration {
__int32 MaxDrawDistance;
__int32 MusicVolume;
__int32 SfxVolume;
__int32 Key0;
__int32 Key1;
__int32 Key2;
__int32 Key3;
__int32 Key4;
__int32 Key5;
__int32 Key6;
__int32 Key7;
__int32 Key8;
__int32 Key9;
__int32 Key10;
__int32 Key11;
__int32 Key12;
__int32 Key13;
__int32 Key14;
__int32 Key15;
__int32 Key16;
__int32 Key17;
byte KeyboardLayout[NUM_CONTROLS];
bool ControlMethod;
__int32 JoyDuck;
__int32 JoyAction;

View file

@ -43,48 +43,6 @@ char* g_KeyNames[] = {
"JOY9", "JOY10", "JOY11", "JOY12", "JOY13", "JOY14", "JOY15", "JOY16"
};
/*
int keyMapping[] = {
-1, VK_ESCAPE, VK_, "2", "3", "4", "5", "6",
"7", "8", "9", "0", "-", "+", "BKSP", "TAB",
"Q", "W", "E", "R", "T", "Y", "U", "I",
"O", "P", "<", ">", "RET", "CTRL", "A", "S",
"D", "F", "G", "H", "J", "K", "L", ";",
"'", "`", "SHIFT", "#", "Z", "X", "C", "V",
"B", "N", "M", ",", ".", "/", "SHIFT", "PADx",
"ALT", "SPACE", "CAPS", -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, "NMLK", -1, "PAD7",
"PAD8", "PAD9", "PAD-", "PAD4", "PAD5", "PAD6", "PAD+", "PAD1",
"PAD2", "PAD3", "PAD0", "PAD.", -1, -1, "\\", -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, "ENTER", "CTRL", -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, "SHIFT", -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, "PAD/", -1, -1,
"ALT", -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, "HOME",
"UP", "PGUP", -1, "LEFT", -1, "RIGHT", -1, "END",
"DOWN", "PGDN", "INS", "DEL", -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1,
"JOY1", "JOY2", "JOY3", "JOY4", "JOY5", "JOY6", "JOY7", "JOY8",
"JOY9", "JOY10", "JOY11", "JOY12", "JOY13", "JOY14", "JOY15", "JOY16"
};*/
void __cdecl InitialiseDirectInput(HWND handle, HINSTANCE instance)
{
// Dummy function, we don't need DirectInput anymore
@ -119,6 +77,7 @@ void __cdecl DI_ReadKeyboard(byte* keys)
keys[TR_KEY_HOME] = GetAsyncKeyState(VK_HOME) >> 8;
keys[TR_KEY_INSERT] = GetAsyncKeyState(VK_INSERT) >> 8;
keys[TR_KEY_DELETE] = GetAsyncKeyState(VK_DELETE) >> 8;
keys[TR_KEY_NUMPAD0] = GetAsyncKeyState(VK_NUMPAD0) >> 8;
}
__int32 __cdecl DD_SpinMessageLoopMaybe()