Merge pull request #9 from OatmealDome/ijudge

`game/judge`: Add `IJudge` and utility functions
This commit is contained in:
MonsterDruide1 2022-01-10 23:34:42 +01:00 committed by GitHub
commit e6b1cd9b80
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 55 additions and 5 deletions

View File

@ -34871,11 +34871,11 @@ Address,Quality,Size,Name
0x00000071005569b8,U,000192,_ZN2rs30setProjectionMtxAsEmptyModel2dEPN2al9LiveActorERKN4sead7Vector2IfEE
0x0000007100556a78,U,000024,_ZN2rs20addDemoRacePrizeCoinEPN2al9LiveActorE
0x0000007100556a90,U,000096,_ZN18StageSceneFunction20appearPlayerDeadCoinEPN2al9LiveActorE
0x0000007100556af0,U,000012,_ZN2rs10resetJudgeEP6IJudge
0x0000007100556afc,U,000012,_ZN2rs11updateJudgeEP6IJudge
0x0000007100556b08,U,000012,_ZN2rs7isJudgeEPK6IJudge
0x0000007100556b14,U,000052,_ZN2rs20updateJudgeAndResultEP6IJudge
0x0000007100556b48,U,000072,_ZN2rs23judgeAndResetReturnTrueEP6IJudge
0x0000007100556af0,O,000012,_ZN2rs10resetJudgeEP6IJudge
0x0000007100556afc,O,000012,_ZN2rs11updateJudgeEP6IJudge
0x0000007100556b08,O,000012,_ZN2rs7isJudgeEPK6IJudge
0x0000007100556b14,O,000052,_ZN2rs20updateJudgeAndResultEP6IJudge
0x0000007100556b48,O,000072,_ZN2rs23judgeAndResetReturnTrueEP6IJudge
0x0000007100556b90,U,000064,_ZN2rs38isEnableShowDemoAfterOpenMoonRockFirstEPKN2al9LiveActorE
0x0000007100556bd0,U,000064,_ZN2rs23isFirstDemoOpenMoonRockEPKN2al9LiveActorE
0x0000007100556c10,U,000104,_ZN2rs32isEnableShowDemoMoonRockMapWorldEPKN2al9LiveActorE

Can't render this file because it is too large.

8
lib/game/judge/IJudge.h Normal file
View File

@ -0,0 +1,8 @@
#pragma once
class IJudge {
public:
virtual void reset() = 0;
virtual void update() = 0;
virtual bool judge() const = 0;
};

11
lib/rs/Judge.h Normal file
View File

@ -0,0 +1,11 @@
#pragma once
class IJudge;
namespace rs {
void resetJudge(IJudge* judge);
void updateJudge(IJudge* judge);
bool isJudge(const IJudge* judge);
bool updateJudgeAndResult(IJudge* judge);
bool judgeAndResetReturnTrue(IJudge* judge);
}; // namespace rs

View File

@ -1,3 +1,4 @@
target_sources(odyssey PRIVATE
Dimension.cpp
Judge.cpp
)

30
src/rs/Judge.cpp Normal file
View File

@ -0,0 +1,30 @@
#include "rs/Judge.h"
#include "game/judge/IJudge.h"
void rs::resetJudge(IJudge* judge) {
judge->reset();
}
void rs::updateJudge(IJudge* judge) {
judge->update();
}
bool rs::isJudge(const IJudge* judge) {
return judge->judge();
}
bool rs::updateJudgeAndResult(IJudge* judge) {
judge->update();
return judge->judge();
}
bool rs::judgeAndResetReturnTrue(IJudge* judge) {
if (!judge->judge()) {
return false;
}
judge->reset();
return true;
}