283 lines
16 KiB
C
283 lines
16 KiB
C
|
|
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
|
|
/* Script::load(QiString const&) */
|
|
|
|
void __thiscall Script::load(Script *this,QiString *param_1)
|
|
|
|
{
|
|
Game *this_00;
|
|
char cVar1;
|
|
char cVar2;
|
|
char *pcVar3;
|
|
undefined4 uVar4;
|
|
QiTimer aQStack_180 [16];
|
|
char *apcStack_170 [2];
|
|
char acStack_160 [16];
|
|
undefined **local_150 [2];
|
|
undefined **local_140 [2];
|
|
undefined *local_130;
|
|
undefined auStack_128 [256];
|
|
undefined8 local_28;
|
|
undefined8 local_20;
|
|
undefined8 local_18;
|
|
undefined8 local_10;
|
|
long local_8;
|
|
|
|
*(undefined8 *)(this + 0x58) = 0;
|
|
local_8 = ___stack_chk_guard;
|
|
unload(this);
|
|
QiScript::init((QiScript *)this);
|
|
*(Script **)this = this;
|
|
QiInputStream::QiInputStream((QiInputStream *)local_150,1);
|
|
QiOutputStream::QiOutputStream((QiOutputStream *)local_140,1);
|
|
local_20 = 0;
|
|
local_150[0] = &PTR__QiMemoryStream_00427560;
|
|
local_140[0] = &PTR__QiMemoryStream_00427598;
|
|
local_130 = auStack_128;
|
|
local_28 = 0x100;
|
|
local_18 = 0;
|
|
local_10 = 0;
|
|
cVar1 = ResMan::load(*(ResMan **)(this + 0x20),param_1,(QiOutputStream *)local_140);
|
|
if (cVar1 == '\0') {
|
|
pcVar3 = "Could not load script: ";
|
|
cVar1 = '\0';
|
|
}
|
|
else {
|
|
QiString::QiString((QiString *)apcStack_170,"");
|
|
cVar1 = QiScript::load((QiScript *)this,(QiString *)apcStack_170,(QiInputStream *)local_150,
|
|
(int)local_10);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
if (cVar1 != '\0') {
|
|
QiString::QiString((QiString *)apcStack_170,"mgCreateImage");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_0018297c);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgCreateImage");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_0018297c);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgCreateUi");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_00183854);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgCreateText");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_001831f8);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgSetOrigo");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_00188a18);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgSetCrop");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_0018a554);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgRadioSelect");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_0018a940);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgSetUiEnabled");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_0018a8d8);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgSetUiModal");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_0018a870);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgSetText");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_0018ab18);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgSetPos");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_00189864);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgSetRot");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_00189e28);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgSetScale");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_00189564);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgSetAlpha");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_00189b50);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgSetColor");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_0018a100);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgGetPos");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_0018937c);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgGetRot");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_00188fd0);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgGetScale");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_00189194);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgGetAlpha");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_00188e0c);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgGetColor");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_00188c18);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgIsVisible");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_001889b4);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgDraw");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_0018894c);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgGet");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_00182578);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgSet");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_001824d8);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgCommand");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_00182438);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgScriptTime");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_0018135c);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgScriptFrame");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_001813a8);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgFullScreenColor");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_00182364);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgCreateSound");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_00183558);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgPlaySound");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_0018acfc);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgIsTouched");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_001820a4);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgGetLastTouch");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_00181328);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgGetScreenCoord");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_00181f90);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgGetLevelInfo");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_00181e84);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgIsCharacterAvailable");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_00181dfc);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgCreateCanvas");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_00182e9c);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgPushCanvas");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_0018be74);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgPopCanvas");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_0018bfc8);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgSetCanvasEnabled");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_0018b134);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgSetCanvasWindow");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_0018b090);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgSetCanvasMovable");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_0018afa8);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgGetUiSelectionCount");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_0018a830);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgGetUiSelectionInfo");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_0018a764);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgDrawReplay");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_0018273c);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgGetPose");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_00181b30);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgSetPose");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_00181c58);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgGetVelocity");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_001840d8);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgSetVelocity");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_00183f30);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgSetFilter");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_001846e8);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgSetDynamic");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_00183c8c);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgMove");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_0018438c);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgRotate");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_00183dc4);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgGetDistanceBetweenBodies");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_00184508);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgGetDistanceToPoint");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_00184234);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgInSensor");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_0018193c);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgBreakJoint");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_0018180c);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgSetSensorEnabled");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_001816c8);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgIsGrabbed");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_00181500);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgIsBroken");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_001813b8);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgCreateEffect");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_0018c074);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgParticle");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_0018b49c);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgRnd");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_001812d4);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgParticlePoof");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_0018b2c4);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiString::QiString((QiString *)apcStack_170,"mgCameraShake");
|
|
QiScript::registerFunction((QiScript *)this,(QiString *)apcStack_170,FUN_00181268);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
QiTimer::QiTimer(aQStack_180);
|
|
QiString::QiString((QiString *)apcStack_170,"init");
|
|
cVar2 = QiScript::hasFunction((QiScript *)this,(QiString *)apcStack_170);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
if (cVar2 != '\0') {
|
|
QiString::QiString((QiString *)apcStack_170,"init()");
|
|
QiScript::execute((QiScript *)this,(QiString *)apcStack_170);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
}
|
|
uVar4 = QiTimer::getTime(aQStack_180);
|
|
this[0x28] = (Script)0x1;
|
|
*(undefined4 *)(this + 0x48) = uVar4;
|
|
QiTimer::reset((QiTimer *)(this + 0x30));
|
|
*(undefined4 *)(this + 0x44) = 0;
|
|
*(undefined4 *)(this + 0x40) = 0;
|
|
goto LAB_00185e24;
|
|
}
|
|
pcVar3 = "Error compiling script: ";
|
|
}
|
|
this_00 = gGame;
|
|
operator+(pcVar3,param_1);
|
|
if (apcStack_170[0] == (char *)0x0) {
|
|
apcStack_170[0] = acStack_160;
|
|
}
|
|
Game::logE(this_00,apcStack_170[0]);
|
|
QiString::~QiString((QiString *)apcStack_170);
|
|
LAB_00185e24:
|
|
local_150[0] = &PTR__QiMemoryStream_00427560;
|
|
local_140[0] = &PTR__QiMemoryStream_00427598;
|
|
if (local_130 != auStack_128) {
|
|
QiFree(local_130);
|
|
}
|
|
QiOutputStream::~QiOutputStream((QiOutputStream *)local_140);
|
|
QiInputStream::~QiInputStream((QiInputStream *)local_150);
|
|
if (local_8 == ___stack_chk_guard) {
|
|
return;
|
|
}
|
|
/* WARNING: Subroutine does not return */
|
|
__stack_chk_fail(cVar1);
|
|
}
|
|
|