582 lines
24 KiB
C
582 lines
24 KiB
C
|
|
||
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
||
|
/* Game::handleCommand(QiString const&) */
|
||
|
|
||
|
void __thiscall Game::handleCommand(Game *this,QiString *param_1)
|
||
|
|
||
|
{
|
||
|
QiString *this_00;
|
||
|
char cVar1;
|
||
|
int iVar2;
|
||
|
int iVar3;
|
||
|
char **this_01;
|
||
|
Game *pGVar4;
|
||
|
long lVar5;
|
||
|
char *pcVar6;
|
||
|
QiString *in_x8;
|
||
|
Audio *pAVar7;
|
||
|
ResMan *this_02;
|
||
|
long *plVar8;
|
||
|
Player *pPVar9;
|
||
|
PropertyBag *pPVar10;
|
||
|
code *pcVar11;
|
||
|
char *local_88 [2];
|
||
|
char acStack_78 [16];
|
||
|
char *local_68 [2];
|
||
|
char acStack_58 [16];
|
||
|
char *local_48 [2];
|
||
|
char acStack_38 [16];
|
||
|
char *local_28 [2];
|
||
|
char acStack_18 [16];
|
||
|
long local_8;
|
||
|
|
||
|
local_8 = ___stack_chk_guard;
|
||
|
QiString::QiString((QiString *)local_48,"Command: ");
|
||
|
QiString::operator+((QiString *)local_48,param_1);
|
||
|
pcVar6 = local_28[0];
|
||
|
if (local_28[0] == (char *)0x0) {
|
||
|
pcVar6 = acStack_18;
|
||
|
}
|
||
|
logI(this,pcVar6);
|
||
|
QiString::~QiString((QiString *)local_28);
|
||
|
QiString::~QiString((QiString *)local_48);
|
||
|
QiString::getWord(param_1,0);
|
||
|
pcVar6 = local_88[0];
|
||
|
if (local_88[0] == (char *)0x0) {
|
||
|
iVar2 = strcmp(acStack_78,"setproperty");
|
||
|
if (iVar2 == 0) goto LAB_0035fc64;
|
||
|
LAB_0035f928:
|
||
|
iVar2 = strcmp(acStack_78,"audio.playBackgroundMusic");
|
||
|
if (iVar2 == 0) goto LAB_0035fb7c;
|
||
|
iVar2 = strcmp(acStack_78,"audio.playForegroundMusic");
|
||
|
if (iVar2 == 0) goto LAB_0035fc00;
|
||
|
iVar2 = strcmp(acStack_78,"movie.start");
|
||
|
if (iVar2 == 0) {
|
||
|
LAB_0035fc34:
|
||
|
QiString::getWord(param_1,1);
|
||
|
QiString::operator=((QiString *)(this + 0x618),(QiString *)local_28);
|
||
|
QiString::~QiString((QiString *)local_28);
|
||
|
*(undefined4 *)(this + 0x60c) = 2;
|
||
|
}
|
||
|
else {
|
||
|
iVar2 = strcmp(acStack_78,"level.restart");
|
||
|
if (iVar2 == 0) {
|
||
|
LAB_0035fe9c:
|
||
|
Player::registerRestart
|
||
|
((Player *)gGame[0xd],(QiVec2 *)(*(long *)(*(long *)(this + 0x58) + 0x608) + 0x20)
|
||
|
);
|
||
|
Player::save((Player *)gGame[0xd]);
|
||
|
lVar5 = *(long *)(this + 0x58);
|
||
|
*(undefined *)(lVar5 + 0x8c0) = 0;
|
||
|
*(undefined8 *)(lVar5 + 0x8a8) = 0;
|
||
|
*(undefined8 *)(lVar5 + 0x8b0) = 0;
|
||
|
*(undefined8 *)(lVar5 + 0x8b8) = 0;
|
||
|
QiInputStream::resetInputStream((QiInputStream *)(lVar5 + 0x778));
|
||
|
QiOutputStream::resetOutputStream((QiOutputStream *)(lVar5 + 0x788));
|
||
|
*(undefined *)(*(long *)(this + 0x58) + 0x8e8) = 1;
|
||
|
}
|
||
|
else {
|
||
|
iVar2 = strcmp(acStack_78,"level.replay");
|
||
|
if (iVar2 == 0) {
|
||
|
LAB_0035fe5c:
|
||
|
lVar5 = *(long *)(this + 0x58);
|
||
|
*(undefined *)(lVar5 + 0x8c0) = 1;
|
||
|
*(undefined *)(lVar5 + 0x8e8) = 1;
|
||
|
if (*(code **)(**gGame + 0x50) != Device::setAlwaysOn) {
|
||
|
(**(code **)(**gGame + 0x50))();
|
||
|
}
|
||
|
}
|
||
|
else {
|
||
|
iVar2 = strcmp(acStack_78,"level.start");
|
||
|
if (iVar2 == 0) {
|
||
|
LAB_0035ff00:
|
||
|
ResMan::clear(*(ResMan **)(*(long *)(this + 0x58) + 0x5b0));
|
||
|
iVar2 = *(int *)(this + 0x608);
|
||
|
*(undefined *)(*(long *)(this + 0x58) + 0x8c0) = 0;
|
||
|
if (iVar2 == 3) {
|
||
|
QiString::getWord(param_1,1);
|
||
|
QiString::operator=((QiString *)(this + 0x638),(QiString *)local_28);
|
||
|
QiString::~QiString((QiString *)local_28);
|
||
|
}
|
||
|
else {
|
||
|
QiString::getWord(param_1,1);
|
||
|
QiString::operator=((QiString *)(this + 0x658),(QiString *)local_28);
|
||
|
QiString::~QiString((QiString *)local_28);
|
||
|
*(undefined4 *)(this + 0x60c) = 3;
|
||
|
}
|
||
|
}
|
||
|
else {
|
||
|
iVar2 = strcmp(acStack_78,"level.startreplay");
|
||
|
if (iVar2 == 0) {
|
||
|
LAB_0035ffc4:
|
||
|
QiString::getWord(param_1,1);
|
||
|
QiString::operator=((QiString *)(this + 0x658),(QiString *)local_28);
|
||
|
QiString::~QiString((QiString *)local_28);
|
||
|
lVar5 = *(long *)(this + 0x58);
|
||
|
*(undefined8 *)(lVar5 + 0x8a8) = 0;
|
||
|
*(undefined8 *)(lVar5 + 0x8b0) = 0;
|
||
|
*(undefined8 *)(lVar5 + 0x8b8) = 0;
|
||
|
QiInputStream::resetInputStream((QiInputStream *)(lVar5 + 0x778));
|
||
|
QiOutputStream::resetOutputStream((QiOutputStream *)(lVar5 + 0x788));
|
||
|
QiString::QiString((QiString *)local_68,(QiString *)(this + 0x658));
|
||
|
cVar1 = isHard(this);
|
||
|
if (cVar1 != '\0') {
|
||
|
QiString::operator+=((QiString *)local_68,"-hard");
|
||
|
}
|
||
|
this_02 = *(ResMan **)(this + 0x20);
|
||
|
operator+("user://replay-",(QiString *)local_68);
|
||
|
QiString::operator+((QiString *)local_48,".motion");
|
||
|
cVar1 = ResMan::load(this_02,(QiString *)local_28,
|
||
|
(QiOutputStream *)(*(long *)(this + 0x58) + 0x788));
|
||
|
QiString::~QiString((QiString *)local_28);
|
||
|
QiString::~QiString((QiString *)local_48);
|
||
|
if (cVar1 != '\0') {
|
||
|
*(undefined *)(*(long *)(this + 0x58) + 0x8c0) = 1;
|
||
|
if (*(code **)(**gGame + 0x50) != Device::setAlwaysOn) {
|
||
|
(**(code **)(**gGame + 0x50))();
|
||
|
}
|
||
|
*(undefined4 *)(this + 0x60c) = 3;
|
||
|
}
|
||
|
QiString::~QiString((QiString *)local_68);
|
||
|
}
|
||
|
else {
|
||
|
iVar2 = strcmp(acStack_78,"level.skip");
|
||
|
if (iVar2 == 0) {
|
||
|
LAB_003600f4:
|
||
|
QiString::getWord(param_1,1);
|
||
|
iVar2 = Player::getCoinCount(*(Player **)(this + 0x68));
|
||
|
if (iVar2 < 200) {
|
||
|
lVar5 = *(long *)(this + 0x40);
|
||
|
QiString::QiString((QiString *)local_28,"showoutofcash");
|
||
|
Script::handleCommand((Script *)(lVar5 + 0xb8),(QiString *)local_28);
|
||
|
QiString::~QiString((QiString *)local_28);
|
||
|
}
|
||
|
else {
|
||
|
Player::addCoins(*(Player **)(this + 0x68),-200);
|
||
|
Player::skipLevel(*(Player **)(this + 0x68),(QiString *)local_48);
|
||
|
Player::save(*(Player **)(this + 0x68));
|
||
|
}
|
||
|
QiString::~QiString((QiString *)local_48);
|
||
|
}
|
||
|
else {
|
||
|
iVar2 = strcmp(acStack_78,"game.quit");
|
||
|
if (iVar2 == 0) {
|
||
|
LAB_00360090:
|
||
|
if (*(code **)(**(long **)this + 0xc0) != Device::quit) {
|
||
|
(**(code **)(**(long **)this + 0xc0))();
|
||
|
}
|
||
|
}
|
||
|
else {
|
||
|
iVar2 = strcmp(acStack_78,"game.menu");
|
||
|
if (iVar2 == 0) {
|
||
|
LAB_00360140:
|
||
|
*(undefined4 *)(this + 0x60c) = 1;
|
||
|
}
|
||
|
else {
|
||
|
iVar2 = strcmp(acStack_78,"game.leaderboards");
|
||
|
if (iVar2 == 0) {
|
||
|
LAB_00360168:
|
||
|
if (*(code **)(**(long **)this + 0xb0) != Device::gameShowLeaderboards) {
|
||
|
(**(code **)(**(long **)this + 0xb0))();
|
||
|
}
|
||
|
}
|
||
|
else {
|
||
|
iVar2 = strcmp(acStack_78,"game.achievements");
|
||
|
if (iVar2 == 0) {
|
||
|
LAB_003601d0:
|
||
|
if (*(code **)(**(long **)this + 0xb8) != Device::gameShowAchievements) {
|
||
|
(**(code **)(**(long **)this + 0xb8))();
|
||
|
}
|
||
|
}
|
||
|
else {
|
||
|
iVar2 = strcmp(acStack_78,"game.saveConfig");
|
||
|
if (iVar2 == 0) {
|
||
|
LAB_003601f4:
|
||
|
saveConfig(this);
|
||
|
}
|
||
|
else {
|
||
|
iVar2 = strcmp(acStack_78,"game.url");
|
||
|
if (iVar2 == 0) {
|
||
|
LAB_00360200:
|
||
|
plVar8 = *(long **)this;
|
||
|
pcVar11 = *(code **)(*plVar8 + 0x48);
|
||
|
QiString::getWord(param_1,1);
|
||
|
(*pcVar11)(plVar8,local_28);
|
||
|
QiString::~QiString((QiString *)local_28);
|
||
|
}
|
||
|
else {
|
||
|
iVar2 = strcmp(acStack_78,"game.difficulty");
|
||
|
if (iVar2 == 0) goto LAB_0035fdd4;
|
||
|
iVar2 = strcmp(acStack_78,"hud.reload");
|
||
|
if (iVar2 == 0) goto LAB_0035f908;
|
||
|
iVar2 = strcmp(acStack_78,"player.buy");
|
||
|
if (iVar2 == 0) goto LAB_003602bc;
|
||
|
iVar2 = strcmp(acStack_78,"player.buycoins");
|
||
|
if (iVar2 == 0) {
|
||
|
LAB_003603e0:
|
||
|
this_00 = (QiString *)(this + 0x6a0);
|
||
|
QiString::getWord(param_1,1);
|
||
|
iVar2 = QiString::toInt((QiString *)local_28);
|
||
|
QiString::~QiString((QiString *)local_28);
|
||
|
QiString::operator=(this_00,"");
|
||
|
if (iVar2 == 1000) {
|
||
|
QiString::operator=(this_00,"com.mediocre.grannysmith.coins1000");
|
||
|
}
|
||
|
else if (iVar2 == 3000) {
|
||
|
QiString::operator=(this_00,"com.mediocre.grannysmith.coins3000");
|
||
|
}
|
||
|
pGVar4 = *(Game **)(this + 0x6a0);
|
||
|
if (pGVar4 == (Game *)0x0) {
|
||
|
if (this[0x6b0] != (Game)0x0) {
|
||
|
pGVar4 = this + 0x6b0;
|
||
|
goto LAB_00360448;
|
||
|
}
|
||
|
}
|
||
|
else if (*pGVar4 != (Game)0x0) {
|
||
|
LAB_00360448:
|
||
|
storeInitPurchase((char *)pGVar4);
|
||
|
this[0x6c4] = (Game)0x1;
|
||
|
*(undefined4 *)(this + 0x6c0) = 0x42700000;
|
||
|
}
|
||
|
}
|
||
|
else {
|
||
|
iVar2 = strcmp(acStack_78,"player.unlockall");
|
||
|
if (iVar2 == 0) goto LAB_00360460;
|
||
|
pcVar6 = acStack_78;
|
||
|
iVar2 = strcmp(acStack_78,"player.restorepurchases");
|
||
|
if (iVar2 == 0) goto LAB_00360284;
|
||
|
LAB_0035fac4:
|
||
|
iVar2 = strcmp(pcVar6,"player.rate");
|
||
|
if (iVar2 == 0) {
|
||
|
pcVar6 = "rated";
|
||
|
LAB_003605a0:
|
||
|
pPVar10 = *(PropertyBag **)(this + 0x68);
|
||
|
QiString::QiString((QiString *)local_48,pcVar6);
|
||
|
QiString::QiString((QiString *)local_28,"1");
|
||
|
PropertyBag::setString
|
||
|
(pPVar10,(QiString *)local_48,(QiString *)local_28);
|
||
|
this_01 = local_28;
|
||
|
goto LAB_0035fe44;
|
||
|
}
|
||
|
iVar2 = strcmp(pcVar6,"player.unlockallchar");
|
||
|
if (iVar2 == 0) {
|
||
|
Player::unlockAllCharacters(*(Player **)(this + 0x68));
|
||
|
Player::save(*(Player **)(this + 0x68));
|
||
|
}
|
||
|
else {
|
||
|
iVar2 = strcmp(pcVar6,"player.selectcharacter");
|
||
|
if (iVar2 == 0) {
|
||
|
pPVar9 = *(Player **)(this + 0x68);
|
||
|
QiString::getWord(param_1,1);
|
||
|
Player::selectCharacter(pPVar9,(QiString *)local_28);
|
||
|
QiString::~QiString((QiString *)local_28);
|
||
|
Player::save(*(Player **)(this + 0x68));
|
||
|
}
|
||
|
else {
|
||
|
iVar2 = strcmp(pcVar6,"player.ischaracteravailable");
|
||
|
if (iVar2 == 0) {
|
||
|
pPVar9 = *(Player **)(this + 0x68);
|
||
|
QiString::getWord(param_1,1);
|
||
|
cVar1 = Player::isCharacterAvailable
|
||
|
(pPVar9,(QiString *)local_28);
|
||
|
QiString::~QiString((QiString *)local_28);
|
||
|
if (cVar1 == '\0') {
|
||
|
QiString::QiString(in_x8,"0");
|
||
|
}
|
||
|
else {
|
||
|
QiString::QiString(in_x8,"1");
|
||
|
}
|
||
|
goto LAB_0035fbc0;
|
||
|
}
|
||
|
iVar2 = strcmp(pcVar6,"player.reset");
|
||
|
if (iVar2 == 0) {
|
||
|
Player::reset(*(Player **)(this + 0x68));
|
||
|
Player::save(*(Player **)(this + 0x68));
|
||
|
Scene::reload(*(Scene **)(this + 0x40));
|
||
|
}
|
||
|
else {
|
||
|
iVar2 = strcmp(pcVar6,"player.adsshown");
|
||
|
if (iVar2 == 0) {
|
||
|
pcVar6 = "adsshown";
|
||
|
goto LAB_003605a0;
|
||
|
}
|
||
|
iVar2 = strcmp(pcVar6,"game.signin");
|
||
|
if (iVar2 == 0) {
|
||
|
(**(code **)(**(long **)this + 0x80))(*(long **)this);
|
||
|
}
|
||
|
else {
|
||
|
iVar2 = strcmp(pcVar6,"game.signout");
|
||
|
if (iVar2 == 0) {
|
||
|
(**(code **)(**(long **)this + 0x88))(*(long **)this);
|
||
|
}
|
||
|
else {
|
||
|
operator+("Unknown command: ",param_1);
|
||
|
if (local_28[0] == (char *)0x0) {
|
||
|
local_28[0] = acStack_18;
|
||
|
}
|
||
|
logE(this,local_28[0]);
|
||
|
QiString::~QiString((QiString *)local_28);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
else {
|
||
|
iVar2 = strcmp(local_88[0],"setproperty");
|
||
|
if (iVar2 == 0) {
|
||
|
LAB_0035fc64:
|
||
|
QiString::getWord(param_1,1);
|
||
|
cVar1 = QiString::contains((QiString *)local_68,"=",true);
|
||
|
if (cVar1 != '\0') {
|
||
|
iVar2 = QiString::getIndexOf((QiString *)local_68,"=",0,true);
|
||
|
QiString::substring((QiString *)local_68,0,iVar2);
|
||
|
iVar2 = QiString::getIndexOf((QiString *)local_68,"=",0,true);
|
||
|
QiString::substring((QiString *)local_68,iVar2 + 1);
|
||
|
setProperty(this,(QiString *)local_48,(QiString *)local_28);
|
||
|
QiString::~QiString((QiString *)local_28);
|
||
|
QiString::~QiString((QiString *)local_48);
|
||
|
}
|
||
|
QiString::~QiString((QiString *)local_68);
|
||
|
if (local_88[0] == (char *)0x0) goto LAB_0035f928;
|
||
|
iVar2 = strcmp(local_88[0],"audio.playBackgroundMusic");
|
||
|
if (iVar2 != 0) {
|
||
|
iVar2 = strcmp(local_88[0],"audio.playForegroundMusic");
|
||
|
if (iVar2 != 0) {
|
||
|
iVar2 = strcmp(local_88[0],"movie.start");
|
||
|
if (iVar2 != 0) {
|
||
|
iVar2 = strcmp(local_88[0],"level.restart");
|
||
|
if (iVar2 != 0) {
|
||
|
iVar2 = strcmp(local_88[0],"level.replay");
|
||
|
if (iVar2 != 0) {
|
||
|
iVar2 = strcmp(local_88[0],"level.start");
|
||
|
if (iVar2 != 0) {
|
||
|
iVar2 = strcmp(local_88[0],"level.startreplay");
|
||
|
if (iVar2 != 0) {
|
||
|
iVar2 = strcmp(local_88[0],"level.skip");
|
||
|
if (iVar2 != 0) {
|
||
|
iVar2 = strcmp(local_88[0],"game.quit");
|
||
|
if (iVar2 != 0) {
|
||
|
iVar2 = strcmp(local_88[0],"game.menu");
|
||
|
if (iVar2 != 0) {
|
||
|
iVar2 = strcmp(local_88[0],"game.leaderboards");
|
||
|
if (iVar2 != 0) {
|
||
|
iVar2 = strcmp(local_88[0],"game.achievements");
|
||
|
if (iVar2 != 0) {
|
||
|
iVar2 = strcmp(local_88[0],"game.saveConfig");
|
||
|
if (iVar2 != 0) {
|
||
|
iVar2 = strcmp(local_88[0],"game.url");
|
||
|
if (iVar2 == 0) goto LAB_00360200;
|
||
|
iVar2 = strcmp(local_88[0],"game.difficulty");
|
||
|
pcVar6 = local_88[0];
|
||
|
goto joined_r0x0035fdd0;
|
||
|
}
|
||
|
goto LAB_003601f4;
|
||
|
}
|
||
|
goto LAB_003601d0;
|
||
|
}
|
||
|
goto LAB_00360168;
|
||
|
}
|
||
|
goto LAB_00360140;
|
||
|
}
|
||
|
goto LAB_00360090;
|
||
|
}
|
||
|
goto LAB_003600f4;
|
||
|
}
|
||
|
goto LAB_0035ffc4;
|
||
|
}
|
||
|
goto LAB_0035ff00;
|
||
|
}
|
||
|
goto LAB_0035fe5c;
|
||
|
}
|
||
|
goto LAB_0035fe9c;
|
||
|
}
|
||
|
goto LAB_0035fc34;
|
||
|
}
|
||
|
goto LAB_0035fc00;
|
||
|
}
|
||
|
}
|
||
|
else {
|
||
|
iVar2 = strcmp(pcVar6,"audio.playBackgroundMusic");
|
||
|
if (iVar2 != 0) {
|
||
|
iVar2 = strcmp(pcVar6,"audio.playForegroundMusic");
|
||
|
if (iVar2 != 0) {
|
||
|
iVar2 = strcmp(pcVar6,"movie.start");
|
||
|
if (iVar2 == 0) goto LAB_0035fc34;
|
||
|
iVar2 = strcmp(pcVar6,"level.restart");
|
||
|
if (iVar2 == 0) goto LAB_0035fe9c;
|
||
|
iVar2 = strcmp(pcVar6,"level.replay");
|
||
|
if (iVar2 == 0) goto LAB_0035fe5c;
|
||
|
iVar2 = strcmp(pcVar6,"level.start");
|
||
|
if (iVar2 == 0) goto LAB_0035ff00;
|
||
|
iVar2 = strcmp(pcVar6,"level.startreplay");
|
||
|
if (iVar2 == 0) goto LAB_0035ffc4;
|
||
|
iVar2 = strcmp(pcVar6,"level.skip");
|
||
|
if (iVar2 == 0) goto LAB_003600f4;
|
||
|
iVar2 = strcmp(pcVar6,"game.quit");
|
||
|
if (iVar2 == 0) goto LAB_00360090;
|
||
|
iVar2 = strcmp(pcVar6,"game.menu");
|
||
|
if (iVar2 == 0) goto LAB_00360140;
|
||
|
iVar2 = strcmp(pcVar6,"game.leaderboards");
|
||
|
if (iVar2 == 0) goto LAB_00360168;
|
||
|
iVar2 = strcmp(pcVar6,"game.achievements");
|
||
|
if (iVar2 == 0) goto LAB_003601d0;
|
||
|
iVar2 = strcmp(pcVar6,"game.saveConfig");
|
||
|
if (iVar2 == 0) goto LAB_003601f4;
|
||
|
iVar2 = strcmp(pcVar6,"game.url");
|
||
|
if (iVar2 == 0) goto LAB_00360200;
|
||
|
iVar2 = strcmp(pcVar6,"game.difficulty");
|
||
|
joined_r0x0035fdd0:
|
||
|
if (iVar2 != 0) {
|
||
|
iVar2 = strcmp(pcVar6,"hud.reload");
|
||
|
if (iVar2 != 0) {
|
||
|
iVar2 = strcmp(pcVar6,"player.buy");
|
||
|
if (iVar2 != 0) {
|
||
|
iVar2 = strcmp(pcVar6,"player.buycoins");
|
||
|
if (iVar2 == 0) goto LAB_003603e0;
|
||
|
iVar2 = strcmp(pcVar6,"player.unlockall");
|
||
|
if (iVar2 != 0) {
|
||
|
iVar2 = strcmp(pcVar6,"player.restorepurchases");
|
||
|
if (iVar2 != 0) goto LAB_0035fac4;
|
||
|
LAB_00360284:
|
||
|
QiString::operator=((QiString *)(this + 0x6a0),"restore");
|
||
|
storeInitRestore();
|
||
|
this[0x6c4] = (Game)0x1;
|
||
|
*(undefined4 *)(this + 0x6c0) = 0x42700000;
|
||
|
goto LAB_0035fbb0;
|
||
|
}
|
||
|
LAB_00360460:
|
||
|
QiString::operator=((QiString *)(this + 0x6a0),"com.mediocre.grannysmith.unlockall3"
|
||
|
);
|
||
|
pGVar4 = *(Game **)(this + 0x6a0);
|
||
|
if (*(Game **)(this + 0x6a0) == (Game *)0x0) {
|
||
|
pGVar4 = this + 0x6b0;
|
||
|
}
|
||
|
goto LAB_00360448;
|
||
|
}
|
||
|
LAB_003602bc:
|
||
|
QiString::getWord(param_1,1);
|
||
|
pcVar6 = local_48[0];
|
||
|
if (local_48[0] == (char *)0x0) {
|
||
|
pcVar6 = acStack_38;
|
||
|
}
|
||
|
iVar2 = 0x14;
|
||
|
iVar3 = strcmp(pcVar6,"helmet");
|
||
|
if (iVar3 != 0) {
|
||
|
iVar2 = 0x28;
|
||
|
iVar3 = strcmp(pcVar6,"banana");
|
||
|
if (iVar3 != 0) {
|
||
|
iVar2 = 0x3c;
|
||
|
iVar3 = strcmp(pcVar6,"baseball");
|
||
|
if (iVar3 != 0) {
|
||
|
iVar2 = 500;
|
||
|
iVar3 = strcmp(pcVar6,"scruffy");
|
||
|
if (iVar3 != 0) {
|
||
|
iVar3 = strcmp(pcVar6,"stanley");
|
||
|
iVar2 = 0;
|
||
|
if (iVar3 == 0) {
|
||
|
iVar2 = 500;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
iVar3 = Player::getCoinCount(*(Player **)(this + 0x68));
|
||
|
if (iVar3 < iVar2) {
|
||
|
lVar5 = *(long *)(this + 0x40);
|
||
|
QiString::QiString((QiString *)local_28,"showoutofcash");
|
||
|
Script::handleCommand((Script *)(lVar5 + 0xb8),(QiString *)local_28);
|
||
|
QiString::~QiString((QiString *)local_28);
|
||
|
QiString::QiString(in_x8,"0");
|
||
|
}
|
||
|
else {
|
||
|
Player::addCoins(*(Player **)(this + 0x68),-iVar2);
|
||
|
if (local_48[0] == (char *)0x0) {
|
||
|
local_48[0] = acStack_38;
|
||
|
}
|
||
|
iVar2 = strcmp(local_48[0],"scruffy");
|
||
|
if ((iVar2 == 0) || (iVar2 = strcmp(local_48[0],"stanley"), iVar2 == 0)) {
|
||
|
Player::unlockCharacter(*(Player **)(this + 0x68),(QiString *)local_48);
|
||
|
lVar5 = *(long *)(this + 0x40);
|
||
|
operator+("character ",(QiString *)local_48);
|
||
|
Script::handleCommand((Script *)(lVar5 + 0xb8),(QiString *)local_28);
|
||
|
QiString::~QiString((QiString *)local_28);
|
||
|
}
|
||
|
else {
|
||
|
Player::addPowerUp(*(Player **)(this + 0x68),(QiString *)local_48,5);
|
||
|
}
|
||
|
Player::save(*(Player **)(this + 0x68));
|
||
|
QiString::QiString(in_x8,"1");
|
||
|
}
|
||
|
QiString::~QiString((QiString *)local_48);
|
||
|
goto LAB_0035fbc0;
|
||
|
}
|
||
|
LAB_0035f908:
|
||
|
this[0x67a] = (Game)0x1;
|
||
|
goto LAB_0035fbb0;
|
||
|
}
|
||
|
LAB_0035fdd4:
|
||
|
pPVar10 = *(PropertyBag **)(this + 0x68);
|
||
|
QiString::QiString((QiString *)local_48,"hard");
|
||
|
QiString::getWord(param_1,1);
|
||
|
this_01 = local_68;
|
||
|
if (local_68[0] == (char *)0x0) {
|
||
|
local_68[0] = acStack_58;
|
||
|
}
|
||
|
iVar2 = strcmp(local_68[0],"hard");
|
||
|
if (iVar2 == 0) {
|
||
|
pcVar6 = "1";
|
||
|
}
|
||
|
else {
|
||
|
pcVar6 = "0";
|
||
|
}
|
||
|
QiString::QiString((QiString *)local_28,pcVar6);
|
||
|
PropertyBag::setString(pPVar10,(QiString *)local_48,(QiString *)local_28);
|
||
|
QiString::~QiString((QiString *)local_28);
|
||
|
LAB_0035fe44:
|
||
|
QiString::~QiString((QiString *)this_01);
|
||
|
QiString::~QiString((QiString *)local_48);
|
||
|
Player::save(*(Player **)(this + 0x68));
|
||
|
goto LAB_0035fbb0;
|
||
|
}
|
||
|
LAB_0035fc00:
|
||
|
Audio::update(*(Audio **)(this + 0x28));
|
||
|
pAVar7 = *(Audio **)(this + 0x28);
|
||
|
QiString::getWord(param_1,1);
|
||
|
Audio::playForegroundMusic(pAVar7,(QiString *)local_28);
|
||
|
QiString::~QiString((QiString *)local_28);
|
||
|
goto LAB_0035fbb0;
|
||
|
}
|
||
|
}
|
||
|
LAB_0035fb7c:
|
||
|
Audio::update(*(Audio **)(this + 0x28));
|
||
|
pAVar7 = *(Audio **)(this + 0x28);
|
||
|
QiString::getWord(param_1,1);
|
||
|
Audio::playBackgroundMusic(pAVar7,(QiString *)local_28,false);
|
||
|
QiString::~QiString((QiString *)local_28);
|
||
|
}
|
||
|
LAB_0035fbb0:
|
||
|
QiString::QiString(in_x8,"");
|
||
|
LAB_0035fbc0:
|
||
|
QiString::~QiString((QiString *)local_88);
|
||
|
if (local_8 == ___stack_chk_guard) {
|
||
|
return;
|
||
|
}
|
||
|
/* WARNING: Subroutine does not return */
|
||
|
__stack_chk_fail();
|
||
|
}
|
||
|
|