1
0
Fork 0
mirror of https://github.com/halpz/re3.git synced 2024-12-27 18:25:28 +00:00

some stats tweaks; saves dead again

This commit is contained in:
Nikolay Korolev 2020-06-07 15:23:52 +03:00
parent c50a61d52a
commit 0b156f1d26
3 changed files with 17 additions and 3 deletions

View file

@ -11956,7 +11956,7 @@ int8 CRunningScript::ProcessCommands1400To1499(int32 command)
return 0; return 0;
case COMMAND_REGISTER_BEST_POSITION: case COMMAND_REGISTER_BEST_POSITION:
CollectParameters(&m_nIp, 2); CollectParameters(&m_nIp, 2);
debug("REGISTER_BEST_POSITION not implemented\n"); CStats::RegisterBestPosition(ScriptParams[0], ScriptParams[1]);
return 0; return 0;
case COMMAND_IS_PLAYER_IN_INFO_ZONE: case COMMAND_IS_PLAYER_IN_INFO_ZONE:
{ {

View file

@ -60,6 +60,7 @@ int32 CStats::mmRain;
int32 CStats::CarsCrushed; int32 CStats::CarsCrushed;
int32 CStats::FastestTimes[CStats::TOTAL_FASTEST_TIMES]; int32 CStats::FastestTimes[CStats::TOTAL_FASTEST_TIMES];
int32 CStats::HighestScores[CStats::TOTAL_HIGHEST_SCORES]; int32 CStats::HighestScores[CStats::TOTAL_HIGHEST_SCORES];
int32 CStats::BestPositions[CStats::TOTAL_BEST_POSITIONS];
int32 CStats::PropertyDestroyed; int32 CStats::PropertyDestroyed;
int32 CStats::Sprayings; int32 CStats::Sprayings;
@ -119,6 +120,8 @@ void CStats::Init()
FastestTimes[i] = 0; FastestTimes[i] = 0;
for (int i = 0; i < TOTAL_HIGHEST_SCORES; i++) for (int i = 0; i < TOTAL_HIGHEST_SCORES; i++)
HighestScores[i] = 0; HighestScores[i] = 0;
for (int i = 0; i < TOTAL_BEST_POSITIONS; i++)
BestPositions[i] = INT_MAX;
for (int i = 0; i < NUM_PEDTYPES; i++) for (int i = 0; i < NUM_PEDTYPES; i++)
PedsKilledOfThisType[i] = 0; PedsKilledOfThisType[i] = 0;
IndustrialPassed = 0; IndustrialPassed = 0;
@ -146,6 +149,12 @@ void CStats::RegisterHighestScore(int32 index, int32 score)
HighestScores[index] = Max(HighestScores[index], score); HighestScores[index] = Max(HighestScores[index], score);
} }
void CStats::RegisterBestPosition(int32 index, int32 position)
{
assert(index >= 0 && index < TOTAL_BEST_POSITIONS);
BestPositions[index] = Min(BestPositions[index], position);
}
void CStats::RegisterElBurroTime(int32 time) void CStats::RegisterElBurroTime(int32 time)
{ {
ElBurroTime = (ElBurroTime && ElBurroTime < time) ? ElBurroTime : time; ElBurroTime = (ElBurroTime && ElBurroTime < time) ? ElBurroTime : time;
@ -377,6 +386,7 @@ void CStats::SaveStats(uint8 *buf, uint32 *size)
CopyToBuf(buf, TotalNumberMissions); CopyToBuf(buf, TotalNumberMissions);
CopyToBuf(buf, FastestTimes); CopyToBuf(buf, FastestTimes);
CopyToBuf(buf, HighestScores); CopyToBuf(buf, HighestScores);
CopyToBuf(buf, BestPositions);
CopyToBuf(buf, KillsSinceLastCheckpoint); CopyToBuf(buf, KillsSinceLastCheckpoint);
CopyToBuf(buf, TotalLegitimateKills); CopyToBuf(buf, TotalLegitimateKills);
CopyToBuf(buf, LastMissionPassedName); CopyToBuf(buf, LastMissionPassedName);
@ -440,6 +450,7 @@ void CStats::LoadStats(uint8 *buf, uint32 size)
CopyFromBuf(buf, TotalNumberMissions); CopyFromBuf(buf, TotalNumberMissions);
CopyFromBuf(buf, FastestTimes); CopyFromBuf(buf, FastestTimes);
CopyFromBuf(buf, HighestScores); CopyFromBuf(buf, HighestScores);
CopyFromBuf(buf, BestPositions);
CopyFromBuf(buf, KillsSinceLastCheckpoint); CopyFromBuf(buf, KillsSinceLastCheckpoint);
CopyFromBuf(buf, TotalLegitimateKills); CopyFromBuf(buf, TotalLegitimateKills);
CopyFromBuf(buf, LastMissionPassedName); CopyFromBuf(buf, LastMissionPassedName);

View file

@ -6,8 +6,9 @@ class CStats
{ {
public: public:
enum { enum {
TOTAL_FASTEST_TIMES = 16, TOTAL_FASTEST_TIMES = 23,
TOTAL_HIGHEST_SCORES = 16 TOTAL_HIGHEST_SCORES = 5,
TOTAL_BEST_POSITIONS = 1
}; };
//TODO //TODO
static int32 SeagullsKilled; static int32 SeagullsKilled;
@ -65,6 +66,7 @@ public:
static int32 CarsCrushed; static int32 CarsCrushed;
static int32 FastestTimes[TOTAL_FASTEST_TIMES]; static int32 FastestTimes[TOTAL_FASTEST_TIMES];
static int32 HighestScores[TOTAL_HIGHEST_SCORES]; static int32 HighestScores[TOTAL_HIGHEST_SCORES];
static int32 BestPositions[TOTAL_BEST_POSITIONS];
static int32 PropertyDestroyed; static int32 PropertyDestroyed;
static int32 Sprayings; static int32 Sprayings;
static float AutoPaintingBudget; static float AutoPaintingBudget;
@ -77,6 +79,7 @@ public:
static void Init(void); static void Init(void);
static void RegisterFastestTime(int32, int32); static void RegisterFastestTime(int32, int32);
static void RegisterHighestScore(int32, int32); static void RegisterHighestScore(int32, int32);
static void RegisterBestPosition(int32, int32);
static void RegisterElBurroTime(int32); static void RegisterElBurroTime(int32);
static void Register4x4OneTime(int32); static void Register4x4OneTime(int32);
static void Register4x4TwoTime(int32); static void Register4x4TwoTime(int32);