mirror of
https://github.com/zeldaret/tp
synced 2026-06-02 02:00:30 -04:00
d_kankyo_wether / d_eye_hl (#178)
* d_eye_hl / d_kankyo_wether wip * more d_kankyo_wether + format * remove asm * some d_kankyo wip * fix dccs vtable * some m_Do_graphic / d_meter2_draw work
This commit is contained in:
+184
-155
@@ -4,13 +4,13 @@
|
||||
//
|
||||
|
||||
#include "DynamicLink.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "dolphin/os/OS.h"
|
||||
#include "JSystem/JUtility/JUTConsole.h"
|
||||
#include "m_Do/m_Do_ext.h"
|
||||
#include "MSL_C.PPCEABI.bare.H/MSL_Common/Src/printf.h"
|
||||
#include "JSystem/JKernel/JKRDvdRipper.h"
|
||||
#include "JSystem/JUtility/JUTConsole.h"
|
||||
#include "MSL_C.PPCEABI.bare.H/MSL_Common/Src/printf.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/os/OS.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "m_Do/m_Do_ext.h"
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
@@ -39,8 +39,8 @@ extern "C" void getModuleTypeString__20DynamicModuleControlCFv();
|
||||
extern "C" void ModuleProlog();
|
||||
extern "C" void ModuleEpilog();
|
||||
extern "C" void ModuleUnresolved();
|
||||
extern "C" void ModuleConstructorsX(void(**ctors)());
|
||||
extern "C" void ModuleDestructorsX(void(**dtors)());
|
||||
extern "C" void ModuleConstructorsX(void (**ctors)());
|
||||
extern "C" void ModuleDestructorsX(void (**dtors)());
|
||||
extern "C" bool do_link__24DynamicModuleControlBaseFv();
|
||||
extern "C" bool do_load__24DynamicModuleControlBaseFv();
|
||||
extern "C" bool do_unload__24DynamicModuleControlBaseFv();
|
||||
@@ -103,16 +103,16 @@ DynamicModuleControlBase* DynamicModuleControlBase::mLast;
|
||||
*/
|
||||
DynamicModuleControlBase::~DynamicModuleControlBase() {
|
||||
force_unlink();
|
||||
if (mPrev!=NULL) {
|
||||
if (mPrev != NULL) {
|
||||
mPrev->mNext = mNext;
|
||||
}
|
||||
if (mNext!=NULL) {
|
||||
if (mNext != NULL) {
|
||||
mNext->mPrev = mPrev;
|
||||
}
|
||||
if (mFirst==this) {
|
||||
if (mFirst == this) {
|
||||
mFirst = mNext;
|
||||
}
|
||||
if (mLast==this) {
|
||||
if (mLast == this) {
|
||||
mLast = mPrev;
|
||||
}
|
||||
mNext = NULL;
|
||||
@@ -125,11 +125,11 @@ DynamicModuleControlBase::DynamicModuleControlBase() {
|
||||
mLinkCount = 0;
|
||||
mDoLinkCount = 0;
|
||||
mNext = NULL;
|
||||
if (mFirst==NULL) {
|
||||
if (mFirst == NULL) {
|
||||
mFirst = this;
|
||||
}
|
||||
mPrev = mLast;
|
||||
if (mPrev!=NULL) {
|
||||
if (mPrev != NULL) {
|
||||
mPrev->mNext = this;
|
||||
}
|
||||
mLast = this;
|
||||
@@ -138,16 +138,16 @@ DynamicModuleControlBase::DynamicModuleControlBase() {
|
||||
/* 802622D0-80262364 25CC10 0094+00 0/0 2/2 0/0 .text link__24DynamicModuleControlBaseFv
|
||||
*/
|
||||
bool DynamicModuleControlBase::link() {
|
||||
if (mLinkCount==0) {
|
||||
if (mLinkCount == 0) {
|
||||
do_load();
|
||||
if (do_link()==false) {
|
||||
if (do_link() == false) {
|
||||
return false;
|
||||
}
|
||||
if (mDoLinkCount<0xFFFF) {
|
||||
if (mDoLinkCount < 0xFFFF) {
|
||||
mDoLinkCount++;
|
||||
}
|
||||
}
|
||||
if(mLinkCount<0xFFFF) {
|
||||
if (mLinkCount < 0xFFFF) {
|
||||
mLinkCount++;
|
||||
}
|
||||
return true;
|
||||
@@ -155,21 +155,22 @@ bool DynamicModuleControlBase::link() {
|
||||
|
||||
/* 80262364-802623EC 25CCA4 0088+00 0/0 1/1 0/0 .text unlink__24DynamicModuleControlBaseFv */
|
||||
bool DynamicModuleControlBase::unlink() {
|
||||
if(mLinkCount!=0) {
|
||||
if (mLinkCount != 0) {
|
||||
mLinkCount--;
|
||||
if(mLinkCount==0) {
|
||||
if (mLinkCount == 0) {
|
||||
do_unlink();
|
||||
do_unload();
|
||||
}
|
||||
}else{
|
||||
OSReport_Warning("%08x DynamicModuleControlBase::unlink() mLinkCount id already zero.\n",this);
|
||||
} else {
|
||||
OSReport_Warning("%08x DynamicModuleControlBase::unlink() mLinkCount id already zero.\n",
|
||||
this);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/* 802623EC-8026242C 25CD2C 0040+00 0/0 1/1 0/0 .text load_async__24DynamicModuleControlBaseFv */
|
||||
bool DynamicModuleControlBase::load_async() {
|
||||
if (mLinkCount==0) {
|
||||
if (mLinkCount == 0) {
|
||||
return do_load_async();
|
||||
}
|
||||
return true;
|
||||
@@ -178,7 +179,7 @@ bool DynamicModuleControlBase::load_async() {
|
||||
/* 8026242C-80262470 25CD6C 0044+00 1/1 0/0 0/0 .text force_unlink__24DynamicModuleControlBaseFv
|
||||
*/
|
||||
bool DynamicModuleControlBase::force_unlink() {
|
||||
if (mLinkCount!=0) {
|
||||
if (mLinkCount != 0) {
|
||||
mLinkCount = 0;
|
||||
do_unlink();
|
||||
}
|
||||
@@ -191,43 +192,45 @@ void DynamicModuleControlBase::dump() {
|
||||
int totalSize = 0;
|
||||
JUTReportConsole_f("\nDynamicModuleControlBase::dump()\n");
|
||||
JUTReportConsole_f("Do Lnk Size Name\n");
|
||||
//lbl_80262608
|
||||
while (current!=NULL) {
|
||||
//lbl_802624B8
|
||||
// lbl_80262608
|
||||
while (current != NULL) {
|
||||
// lbl_802624B8
|
||||
u16 doLinkCount = current->mDoLinkCount;
|
||||
u16 linkCount = current->mLinkCount;
|
||||
if (doLinkCount!=0||linkCount!=0) {
|
||||
//lbl_802624D0
|
||||
if (doLinkCount != 0 || linkCount != 0) {
|
||||
// lbl_802624D0
|
||||
u32 size = current->getModuleSize();
|
||||
const char* name = current->getModuleName();
|
||||
if(size<0xFFFFFFFF) {
|
||||
name = (name!=NULL) ? name : "(Null)";
|
||||
//lbl_80262524
|
||||
if (size < 0xFFFFFFFF) {
|
||||
name = (name != NULL) ? name : "(Null)";
|
||||
// lbl_80262524
|
||||
const char* type = current->getModuleTypeString();
|
||||
JUTReportConsole_f("%3d%3d%5.1f %05x %-4s %-24s ",doLinkCount,linkCount,size*(1.0f/1024.0f),size,type,name);
|
||||
totalSize=totalSize+size;
|
||||
}else{
|
||||
//lbl_80262588
|
||||
name = (name!=NULL) ? name : "(Null)";
|
||||
//lbl_802625A4
|
||||
JUTReportConsole_f("%3d%3d%5.1f %05x %-4s %-24s ", doLinkCount, linkCount,
|
||||
size * (1.0f / 1024.0f), size, type, name);
|
||||
totalSize = totalSize + size;
|
||||
} else {
|
||||
// lbl_80262588
|
||||
name = (name != NULL) ? name : "(Null)";
|
||||
// lbl_802625A4
|
||||
const char* type = current->getModuleTypeString();
|
||||
JUTReportConsole_f("%3d%3d ???? ????? %-4s %-24s ",doLinkCount,linkCount,type,name);
|
||||
JUTReportConsole_f("%3d%3d ???? ????? %-4s %-24s ", doLinkCount, linkCount, type,
|
||||
name);
|
||||
}
|
||||
//lbl_802625DC
|
||||
// lbl_802625DC
|
||||
current->dump2();
|
||||
JUTReportConsole_f("\n");
|
||||
}
|
||||
//lbl_80262604
|
||||
// lbl_80262604
|
||||
current = getNextClass();
|
||||
}
|
||||
//lbl_80262608
|
||||
JUTReportConsole_f("TotalSize %6.2f %06x\n\n",(1.0f/1024.0f)*totalSize,totalSize);
|
||||
// lbl_80262608
|
||||
JUTReportConsole_f("TotalSize %6.2f %06x\n\n", (1.0f / 1024.0f) * totalSize, totalSize);
|
||||
}
|
||||
#else
|
||||
/* ############################################################################################## */
|
||||
/* 80455008-80455010 003608 0004+04 1/1 0/0 0/0 .sdata2 @3772 */
|
||||
SECTION_SDATA2 static f32 lit_3772[1 + 1 /* padding */] = {
|
||||
0.0009765625f, // 1/1024
|
||||
0.0009765625f, // 1/1024
|
||||
/* padding */
|
||||
0.0f,
|
||||
};
|
||||
@@ -291,10 +294,13 @@ SECTION_DEAD static char const* const stringBase_8039A57B = "Base";
|
||||
/* 802626D0-8026275C 25D010 008C+00 1/1 0/0 0/0 .text mountCallback__20DynamicModuleControlFPv */
|
||||
JKRArchive* DynamicModuleControl::mountCallback(void* param_0) {
|
||||
JKRExpHeap* heap = mDoExt_getArchiveHeap();
|
||||
sFileCache = JKRFileCache::mount("/rel/Final/Release",heap,NULL);
|
||||
sArchive = JKRArchive::mount("RELS.arc",JKRArchive::MOUNT_COMP,heap,JKRArchive::MOUNT_DIRECTION_HEAD);
|
||||
sFileCache = JKRFileCache::mount("/rel/Final/Release", heap, NULL);
|
||||
sArchive = JKRArchive::mount("RELS.arc", JKRArchive::MOUNT_COMP, heap,
|
||||
JKRArchive::MOUNT_DIRECTION_HEAD);
|
||||
if (sArchive == NULL) {
|
||||
OSReport_Warning("マウント失敗ですが単にアーカイブを作ってないだけなら遅いだけです %s\n","RELS.arc");
|
||||
// "Mount failure, but if the archive isn't created, it was too slow %s\n"
|
||||
OSReport_Warning("マウント失敗ですが単にアーカイブを作ってないだけなら遅いだけです %s\n",
|
||||
"RELS.arc");
|
||||
}
|
||||
return sArchive;
|
||||
}
|
||||
@@ -318,9 +324,9 @@ void* DynamicModuleControl::callback(void* moduleControlPtr) {
|
||||
/* 802627C0-802627E8 25D100 0028+00 1/1 0/0 0/0 .text calcSum2__FPCUsUl */
|
||||
static u32 calcSum2(u16 const* data, u32 size) {
|
||||
u32 sum = 0;
|
||||
while (size>0) {
|
||||
while (size > 0) {
|
||||
sum = sum + *data;
|
||||
size=size-2;
|
||||
size = size - 2;
|
||||
data++;
|
||||
}
|
||||
return sum;
|
||||
@@ -328,83 +334,93 @@ static u32 calcSum2(u16 const* data, u32 size) {
|
||||
|
||||
#ifdef NONMATCHING
|
||||
bool DynamicModuleControl::do_load() {
|
||||
if (mModule!=NULL) {
|
||||
if (mModule != NULL) {
|
||||
return true;
|
||||
}
|
||||
JKRExpHeap* heap = mDoExt_getArchiveHeap();
|
||||
s32 i = 0;
|
||||
while(true) {
|
||||
if(mModule != NULL) {
|
||||
JKRHeap::free(mModule,NULL);
|
||||
while (true) {
|
||||
if (mModule != NULL) {
|
||||
JKRHeap::free(mModule, NULL);
|
||||
mModule = NULL;
|
||||
}
|
||||
char buffer[64];
|
||||
snprintf(buffer,64,"%s.rel",mName);
|
||||
if(mModule==NULL&&sArchive!=NULL) {
|
||||
if(mModule==NULL) {
|
||||
mModule = (OSModuleInfo*)JKRArchive::getGlbResource(0x4D4D454D/*MMEM*/,buffer,sArchive);
|
||||
if(mModule!=NULL) {
|
||||
snprintf(buffer, 64, "%s.rel", mName);
|
||||
if (mModule == NULL && sArchive != NULL) {
|
||||
if (mModule == NULL) {
|
||||
mModule = (OSModuleInfo*)JKRArchive::getGlbResource('MMEM', buffer, sArchive);
|
||||
if (mModule != NULL) {
|
||||
mResourceType = 1;
|
||||
}
|
||||
}
|
||||
if(mModule==NULL) {
|
||||
mModule = (OSModuleInfo*)JKRArchive::getGlbResource(0x414D454D/*AMEM*/,buffer,sArchive);
|
||||
if(mModule!=NULL) {
|
||||
if (mModule == NULL) {
|
||||
mModule = (OSModuleInfo*)JKRArchive::getGlbResource('AMEM', buffer, sArchive);
|
||||
if (mModule != NULL) {
|
||||
mResourceType = 2;
|
||||
}
|
||||
}
|
||||
if(mModule==NULL) {
|
||||
mModule = (OSModuleInfo*)JKRArchive::getGlbResource(0x444D454D/*DMEM*/,buffer,sArchive);
|
||||
if(mModule!=NULL) {
|
||||
if (mModule == NULL) {
|
||||
mModule = (OSModuleInfo*)JKRArchive::getGlbResource('DMEM', buffer, sArchive);
|
||||
if (mModule != NULL) {
|
||||
mResourceType = 3;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(mModule!=NULL) {
|
||||
if (mModule != NULL) {
|
||||
mSize = sArchive->getExpandedResSize(mModule);
|
||||
JKRFileLoader::detachResource(mModule,NULL);
|
||||
}else if(mModule==NULL){
|
||||
snprintf(buffer,64,"/rel/Final/Release/%s.rel",mName);
|
||||
mModule = (OSModuleInfo*)JKRDvdRipper::loadToMainRAM(buffer,NULL,EXPAND_SWITCH_UNKNOWN1,0,heap,JKRDvdRipper::ALLOC_DIRECTION_FORWARD,0,NULL,NULL);
|
||||
if(mModule!=NULL) {
|
||||
JKRFileLoader::detachResource(mModule, NULL);
|
||||
} else if (mModule == NULL) {
|
||||
snprintf(buffer, 64, "/rel/Final/Release/%s.rel", mName);
|
||||
mModule = (OSModuleInfo*)JKRDvdRipper::loadToMainRAM(
|
||||
buffer, NULL, EXPAND_SWITCH_UNKNOWN1, 0, heap,
|
||||
JKRDvdRipper::ALLOC_DIRECTION_FORWARD, 0, NULL, NULL);
|
||||
if (mModule != NULL) {
|
||||
mSize = 0;
|
||||
mResourceType = 7;
|
||||
}
|
||||
}
|
||||
if(mModule==NULL&&sFileCache!=NULL) {
|
||||
mModule = (OSModuleInfo*)sFileCache->getResource(0x72656C73/*rels*/,buffer);
|
||||
if(mModule!=NULL) {
|
||||
if (mModule == NULL && sFileCache != NULL) {
|
||||
mModule = (OSModuleInfo*)sFileCache->getResource('rels', buffer);
|
||||
if (mModule != NULL) {
|
||||
mSize = 0;
|
||||
mResourceType = 11;
|
||||
JKRFileLoader::detachResource(mModule,NULL);
|
||||
JKRFileLoader::detachResource(mModule, NULL);
|
||||
}
|
||||
}
|
||||
if(mModule==NULL) {
|
||||
OSReport_Error("\x44\x79\x6E\x61\x6D\x69\x63\x4D\x6F\x64\x75\x6C\x65\x43\x6F\x6E\x74\x72\x6F\x6C\x3A\x3A\x64\x6F\x5F\x6C\x6F\x61\x64\x28\x29\x20\x83\x8A\x83\x5C\x81\x5B\x83\x58\x93\xC7\x82\xDD\x8D\x9E\x82\xDD\x8E\xB8\x94\x73\x20\x5B\x25\x73\x5D\x0A",mName);
|
||||
if (mModule == NULL) {
|
||||
// "DynamicModuleControl::do_load() Resource load failure [%s]\n"
|
||||
OSReport_Error(
|
||||
"\x44\x79\x6E\x61\x6D\x69\x63\x4D\x6F\x64\x75\x6C\x65\x43\x6F\x6E\x74\x72\x6F\x6C"
|
||||
"\x3A\x3A\x64\x6F\x5F\x6C\x6F\x61\x64\x28\x29\x20\x83\x8A\x83\x5C\x81\x5B\x83\x58"
|
||||
"\x93\xC7\x82\xDD\x8D\x9E\x82\xDD\x8E\xB8\x94\x73\x20\x5B\x25\x73\x5D\x0A",
|
||||
mName);
|
||||
return false;
|
||||
}
|
||||
if(mSize>0) {
|
||||
u32 sum = calcSum2((u16*)mModule,mSize);
|
||||
if(unk_33==0) {
|
||||
mChecksum=sum;
|
||||
if (mSize > 0) {
|
||||
u32 sum = calcSum2((u16*)mModule, mSize);
|
||||
if (unk_33 == 0) {
|
||||
mChecksum = sum;
|
||||
unk_33++;
|
||||
}else{
|
||||
u32 newsum = sum&0xFFFF;
|
||||
if(newsum!=mChecksum) {
|
||||
OSReport_Error("DynamicModuleControl::do_load() チェックサムエラー %04x %04x[%s]\n",newsum,mChecksum,mName);
|
||||
} else {
|
||||
u32 newsum = sum & 0xFFFF;
|
||||
if (newsum != mChecksum) {
|
||||
OSReport_Error(
|
||||
// "DynamicModuleControl::do_load() Checksum Error %04x %04x[%s]\n"
|
||||
"DynamicModuleControl::do_load() チェックサムエラー %04x %04x[%s]\n",
|
||||
newsum, mChecksum, mName);
|
||||
unk_33 = 0;
|
||||
i++;
|
||||
if(i>=3) {
|
||||
if (i >= 3) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(unk_33<0xFF) {
|
||||
if (unk_33 < 0xFF) {
|
||||
unk_33++;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if(unk_33<0xFF) {
|
||||
if (unk_33 < 0xFF) {
|
||||
unk_33++;
|
||||
return true;
|
||||
}
|
||||
@@ -443,20 +459,23 @@ asm bool DynamicModuleControl::do_load() {
|
||||
|
||||
/* 80262AFC-80262BC4 25D43C 00C8+00 1/0 0/0 0/0 .text do_load_async__20DynamicModuleControlFv */
|
||||
bool DynamicModuleControl::do_load_async() {
|
||||
if (mAsyncLoadCallback==NULL) {
|
||||
if(mModule!=NULL) {
|
||||
if (mAsyncLoadCallback == NULL) {
|
||||
if (mModule != NULL) {
|
||||
return true;
|
||||
}
|
||||
mAsyncLoadCallback = mDoDvdThd_callback_c::create(DynamicModuleControl::callback,this);
|
||||
if(mAsyncLoadCallback==NULL) {
|
||||
OSReport_Error("DynamicModuleControl::do_load_async() 非同期読み込みコールバック登録失敗 [%s]\n",mName);
|
||||
mAsyncLoadCallback = mDoDvdThd_callback_c::create(DynamicModuleControl::callback, this);
|
||||
if (mAsyncLoadCallback == NULL) {
|
||||
OSReport_Error(
|
||||
// "DynamicModuleControl::do_load_async() async load callback entry failure [%s]\n"
|
||||
"DynamicModuleControl::do_load_async() 非同期読み込みコールバック登録失敗 [%s]\n",
|
||||
mName);
|
||||
}
|
||||
}
|
||||
if (mAsyncLoadCallback!=NULL&&mAsyncLoadCallback->sync()) {
|
||||
if (mAsyncLoadCallback != NULL && mAsyncLoadCallback->sync()) {
|
||||
mAsyncLoadCallback->destroy();
|
||||
mAsyncLoadCallback = NULL;
|
||||
return true;
|
||||
}else{
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -464,7 +483,7 @@ bool DynamicModuleControl::do_load_async() {
|
||||
/* 80262BC4-80262C0C 25D504 0048+00 1/0 0/0 0/0 .text do_unload__20DynamicModuleControlFv
|
||||
*/
|
||||
bool DynamicModuleControl::do_unload() {
|
||||
if (mModule!=NULL){
|
||||
if (mModule != NULL) {
|
||||
JKRFree(mModule);
|
||||
mModule = NULL;
|
||||
}
|
||||
@@ -473,79 +492,87 @@ bool DynamicModuleControl::do_unload() {
|
||||
|
||||
/* 80262C0C-80262C5C 25D54C 0050+00 1/0 0/0 0/0 .text dump2__20DynamicModuleControlFv */
|
||||
void DynamicModuleControl::dump2() {
|
||||
if (mModule!=NULL) {
|
||||
if (mModule != NULL) {
|
||||
OSSectionInfo* section = (OSSectionInfo*)mModule->info.sectionInfoOffset;
|
||||
OSSectionInfo* section2 = section+1;
|
||||
OSSectionInfo* section2 = section + 1;
|
||||
u32 offset = section2->mOffset & ~(1);
|
||||
OSReport("%08x-%08x %08x %08x",mModule,offset,offset+section2->mSize);
|
||||
OSReport("%08x-%08x %08x %08x", mModule, offset, offset + section2->mSize);
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef NONMATCHING
|
||||
BOOL DynamicModuleControl::do_link() {
|
||||
OSGetTime();
|
||||
if(mModule==NULL) {
|
||||
if (mModule == NULL) {
|
||||
do_load();
|
||||
}
|
||||
|
||||
if(mModule!=NULL) {
|
||||
if (mModule != NULL) {
|
||||
ASSERT(mModule->info.sectionInfoOffset < 0x80000000);
|
||||
ASSERT((u32)mModule + mModule->fixSize < 0x82000000);
|
||||
OSGetTime();
|
||||
OSGetTime();
|
||||
if(mModule->mModuleVersion>=3) {
|
||||
if (mModule->mModuleVersion >= 3) {
|
||||
u32 unk = mModule->fixSize;
|
||||
u32 unk3 = (unk+0x1f) & ~0x1f;
|
||||
u32 unk2 = (u32)mModule+unk3;
|
||||
s32 size = JKRHeap::getSize(mModule,NULL);
|
||||
if(size<0) {
|
||||
void* bss = JKRHeap::alloc(mModule->mBssSize,0x20,NULL);
|
||||
if (bss==NULL) {
|
||||
u32 unk3 = (unk + 0x1f) & ~0x1f;
|
||||
u32 unk2 = (u32)mModule + unk3;
|
||||
s32 size = JKRHeap::getSize(mModule, NULL);
|
||||
if (size < 0) {
|
||||
void* bss = JKRHeap::alloc(mModule->mBssSize, 0x20, NULL);
|
||||
if (bss == NULL) {
|
||||
// "BSS Memory allocation failed\n"
|
||||
OSReport_Error("BSSメモリ確保失敗\n");
|
||||
goto end;
|
||||
}else{
|
||||
} else {
|
||||
mBss = bss;
|
||||
BOOL linkResult = OSLink(mModule);
|
||||
if(linkResult==FALSE) {
|
||||
if (linkResult == FALSE) {
|
||||
// "link failed\n"
|
||||
OSReport_Error("リンク失敗\n");
|
||||
goto end;
|
||||
}
|
||||
}
|
||||
}else{
|
||||
if(mModule->mBssSize+unk<size) {
|
||||
BOOL linkResult = OSLinkFixed(mModule,unk2);
|
||||
if(linkResult==FALSE) {
|
||||
} else {
|
||||
if (mModule->mBssSize + unk < size) {
|
||||
BOOL linkResult = OSLinkFixed(mModule, unk2);
|
||||
if (linkResult == FALSE) {
|
||||
// "link failed\n"
|
||||
OSReport_Error("リンク失敗\n");
|
||||
goto end;
|
||||
}else{
|
||||
s32 result = JKRHeap::resize(mModule,mModule->mBssSize+unk,NULL);
|
||||
if (result<0) {
|
||||
} else {
|
||||
s32 result = JKRHeap::resize(mModule, mModule->mBssSize + unk, NULL);
|
||||
if (result < 0) {
|
||||
// "Module size (resize) failed\n"
|
||||
OSReport_Error("モジュールリサイズ(縮小)失敗\n");
|
||||
}
|
||||
}
|
||||
}else{ //lbl_80262DB0
|
||||
s32 result = JKRHeap::resize(mModule,mModule->mBssSize+unk,NULL);
|
||||
if (result>0) {
|
||||
BOOL linkResult = OSLinkFixed(mModule,unk2);
|
||||
if(linkResult==FALSE) {
|
||||
} else { // lbl_80262DB0
|
||||
s32 result = JKRHeap::resize(mModule, mModule->mBssSize + unk, NULL);
|
||||
if (result > 0) {
|
||||
BOOL linkResult = OSLinkFixed(mModule, unk2);
|
||||
if (linkResult == FALSE) {
|
||||
// "link failed\n"
|
||||
OSReport_Error("リンク失敗\n");
|
||||
goto end;
|
||||
}
|
||||
}else{ //lbl_80262DF0
|
||||
void* bss = JKRHeap::alloc(mModule->mBssSize,0x20,NULL);
|
||||
if (bss==NULL) {
|
||||
OSReport_Error("BSSメモリ確保失敗 [%x]\n",mModule->mBssSize);
|
||||
} else { // lbl_80262DF0
|
||||
void* bss = JKRHeap::alloc(mModule->mBssSize, 0x20, NULL);
|
||||
if (bss == NULL) {
|
||||
// "BSS Memory allocation failure [%x]\n"
|
||||
OSReport_Error("BSSメモリ確保失敗 [%x]\n", mModule->mBssSize);
|
||||
goto end;
|
||||
}else{ //lbl_80262E2C
|
||||
} else { // lbl_80262E2C
|
||||
mBss = bss;
|
||||
BOOL linkResult = OSLinkFixed(mModule,(u32)bss);
|
||||
if (linkResult==FALSE) {
|
||||
BOOL linkResult = OSLinkFixed(mModule, (u32)bss);
|
||||
if (linkResult == FALSE) {
|
||||
// "link failed\n"
|
||||
OSReport_Error("リンク失敗\n");
|
||||
goto end;
|
||||
}
|
||||
//lbl_80262E58
|
||||
s32 result = JKRHeap::resize(mModule,unk3,NULL);
|
||||
if (result<0) {
|
||||
// lbl_80262E58
|
||||
s32 result = JKRHeap::resize(mModule, unk3, NULL);
|
||||
if (result < 0) {
|
||||
// "Module size (resize) failed\n"
|
||||
OSReport_Error("モジュールリサイズ(縮小)失敗\n");
|
||||
}
|
||||
}
|
||||
@@ -553,7 +580,7 @@ BOOL DynamicModuleControl::do_link() {
|
||||
}
|
||||
}
|
||||
}
|
||||
//lbl_80262E84
|
||||
// lbl_80262E84
|
||||
OSGetTime();
|
||||
sAllocBytes = sAllocBytes + getModuleSize();
|
||||
OSGetTime();
|
||||
@@ -562,14 +589,14 @@ BOOL DynamicModuleControl::do_link() {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
end: //lbl_80262ECC
|
||||
end: // lbl_80262ECC
|
||||
unk_33 = 0;
|
||||
if(mBss!=NULL) {
|
||||
JKRHeap::free(mBss,NULL);
|
||||
if (mBss != NULL) {
|
||||
JKRHeap::free(mBss, NULL);
|
||||
mBss = NULL;
|
||||
}
|
||||
if(mModule!=NULL) {
|
||||
JKRHeap::free(mModule,NULL);
|
||||
if (mModule != NULL) {
|
||||
JKRHeap::free(mModule, NULL);
|
||||
mModule = NULL;
|
||||
}
|
||||
return FALSE;
|
||||
@@ -603,28 +630,29 @@ bool DynamicModuleControl::do_unlink() {
|
||||
OSTime time2 = OSGetTime();
|
||||
BOOL unklink = OSUnlink(mModule);
|
||||
OSTime time3 = OSGetTime();
|
||||
if (unklink==FALSE) {
|
||||
OSReport_Error("アンリンク失敗 mModule=%08x mBss=%08x\n",mModule,mBss);
|
||||
if (unklink == FALSE) {
|
||||
// "Unlink failed mModule=%08x mBss=%08x\n"
|
||||
OSReport_Error("アンリンク失敗 mModule=%08x mBss=%08x\n", mModule, mBss);
|
||||
return false;
|
||||
}
|
||||
sAllocBytes = sAllocBytes - getModuleSize();
|
||||
if (mBss!=NULL) {
|
||||
if (mBss != NULL) {
|
||||
JKRFree(mBss);
|
||||
mBss = NULL;
|
||||
}
|
||||
do_unload();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
/* 80263000-80263070 25D940 0070+00 1/0 0/0 0/0 .text getModuleSize__20DynamicModuleControlCFv */
|
||||
int DynamicModuleControl::getModuleSize() const {
|
||||
if (mModule!=NULL){
|
||||
u32 size = JKRGetMemBlockSize(NULL,mModule);
|
||||
if (mBss!=NULL) {
|
||||
JKRGetMemBlockSize(NULL,mBss);
|
||||
if (mModule != NULL) {
|
||||
u32 size = JKRGetMemBlockSize(NULL, mModule);
|
||||
if (mBss != NULL) {
|
||||
JKRGetMemBlockSize(NULL, mBss);
|
||||
}
|
||||
return size+mModule->mBssSize;
|
||||
}else{
|
||||
return size + mModule->mBssSize;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
@@ -632,8 +660,8 @@ int DynamicModuleControl::getModuleSize() const {
|
||||
/* 80263070-80263088 25D9B0 0018+00 1/0 0/0 0/0 .text
|
||||
* getModuleTypeString__20DynamicModuleControlCFv */
|
||||
const char* DynamicModuleControl::getModuleTypeString() const {
|
||||
static const char* strings[4] = {"????","MEM","ARAM","DVD"};
|
||||
return strings[mResourceType&3];
|
||||
static const char* strings[4] = {"????", "MEM", "ARAM", "DVD"};
|
||||
return strings[mResourceType & 3];
|
||||
}
|
||||
|
||||
/* 803C34C0-803C34F4 0205E0 0034+00 1/1 2/2 0/0 .data __vt__20DynamicModuleControl */
|
||||
@@ -665,28 +693,29 @@ extern "C" void ModuleEpilog() {
|
||||
|
||||
/* 80263090-8026314C 25D9D0 00BC+00 0/0 0/0 757/757 .text ModuleUnresolved */
|
||||
extern "C" void ModuleUnresolved() {
|
||||
// "\nError: Unlinked function was called.\n"
|
||||
OSReport_Error("\nError: リンクされていない関数が呼び出されました.\n");
|
||||
OSReport_Error("Address: Back Chain LR Save\n");
|
||||
u32 i = 0;
|
||||
u32* stackPtr = (u32*)OSGetStackPointer();
|
||||
while((stackPtr != NULL) && ((u32)stackPtr != 0xFFFFFFFF) && (i++ < 0x10)) {
|
||||
OSReport_Error("0x%08x: 0x%08x 0x%08x\n",stackPtr,*stackPtr,*(stackPtr+1));
|
||||
while ((stackPtr != NULL) && ((u32)stackPtr != 0xFFFFFFFF) && (i++ < 0x10)) {
|
||||
OSReport_Error("0x%08x: 0x%08x 0x%08x\n", stackPtr, *stackPtr, *(stackPtr + 1));
|
||||
stackPtr = (u32*)*stackPtr;
|
||||
}
|
||||
OSReport_Error("\n");
|
||||
}
|
||||
|
||||
/* 8026314C-80263190 25DA8C 0044+00 0/0 0/0 757/757 .text ModuleConstructorsX */
|
||||
extern "C" void ModuleConstructorsX(void(**ctors)()) {
|
||||
while (*ctors!=0) {
|
||||
extern "C" void ModuleConstructorsX(void (**ctors)()) {
|
||||
while (*ctors != 0) {
|
||||
(**ctors)();
|
||||
ctors++;
|
||||
}
|
||||
}
|
||||
|
||||
/* 80263190-802631D4 25DAD0 0044+00 0/0 0/0 757/757 .text ModuleDestructorsX */
|
||||
extern "C" void ModuleDestructorsX(void(**dtors)()) {
|
||||
while (*dtors!=0) {
|
||||
extern "C" void ModuleDestructorsX(void (**dtors)()) {
|
||||
while (*dtors != 0) {
|
||||
(**dtors)();
|
||||
dtors++;
|
||||
}
|
||||
|
||||
@@ -3324,7 +3324,6 @@ extern "C" u8 BaseY__4cXyz[12];
|
||||
extern "C" u8 BaseZ__4cXyz[12];
|
||||
extern "C" u8 mCurrentMtx__6J3DSys[48];
|
||||
extern "C" u8 sincosTable___5JMath[65536];
|
||||
extern "C" extern u32 g_whiteColor;
|
||||
extern "C" u16 m_branchId__7dDemo_c[1 + 3 /* padding */];
|
||||
extern "C" extern u8 data_80450B38[4];
|
||||
extern "C" f32 mGroundY__11fopAcM_gc_c;
|
||||
@@ -3582,10 +3581,10 @@ void daAlink_c::setMatrixWorldAxisRot(MtxP param_0, s16 param_1, s16 param_2, s1
|
||||
mDoMtx_stack_c::YrotM(-mCollisionRot.y);
|
||||
concatMagneBootInvMtx();
|
||||
mDoMtx_stack_c::transM(-tmp.x, -tmp.y, -tmp.z);
|
||||
PSMTXConcat(*mDoMtx_stack_c::get(), param_0, *mDoMtx_stack_c::get());
|
||||
PSMTXCopy(*mDoMtx_stack_c::get(), param_0);
|
||||
PSMTXConcat(mDoMtx_stack_c::get(), param_0, mDoMtx_stack_c::get());
|
||||
PSMTXCopy(mDoMtx_stack_c::get(), param_0);
|
||||
if (param_4 != 0) {
|
||||
PSMTXCopy(*mDoMtx_stack_c::get(), J3DSys::mCurrentMtx);
|
||||
PSMTXCopy(mDoMtx_stack_c::get(), J3DSys::mCurrentMtx);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -172,7 +172,7 @@ int dBgS_MoveBgActor::MoveBGCreate(char const* p_name, int dzb_id, MoveBGActor_S
|
||||
mDoMtx_stack_c::transS(mCurrent.mPosition.x, mCurrent.mPosition.y, mCurrent.mPosition.z);
|
||||
mDoMtx_stack_c::YrotM(mCollisionRot.y);
|
||||
mDoMtx_stack_c::scaleM(mScale.x, mScale.y, mScale.z);
|
||||
PSMTXCopy(*mDoMtx_stack_c::get(), field_0x56c);
|
||||
PSMTXCopy(mDoMtx_stack_c::get(), field_0x56c);
|
||||
} else {
|
||||
PSMTXCopy(*param_4, field_0x56c);
|
||||
}
|
||||
@@ -222,7 +222,7 @@ bool dBgS_MoveBgActor::MoveBGExecute() {
|
||||
mDoMtx_stack_c::transS(mCurrent.mPosition.x, mCurrent.mPosition.y, mCurrent.mPosition.z);
|
||||
mDoMtx_stack_c::YrotM(mCollisionRot.y);
|
||||
mDoMtx_stack_c::scaleM(mScale.x, mScale.y, mScale.z);
|
||||
PSMTXCopy(*mDoMtx_stack_c::get(), field_0x56c);
|
||||
PSMTXCopy(mDoMtx_stack_c::get(), field_0x56c);
|
||||
} else {
|
||||
PSMTXCopy(*tmp, field_0x56c);
|
||||
}
|
||||
|
||||
+19
-175
@@ -3,7 +3,8 @@
|
||||
// Translation Unit: d/cc/d_cc_s
|
||||
//
|
||||
|
||||
//#include "d/cc/d_cc_s.h"
|
||||
#include "d/cc/d_cc_s.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
@@ -11,139 +12,12 @@
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct csXyz {};
|
||||
|
||||
struct mDoMtx_stack_c {
|
||||
/* 8000CF0C */ void ZXYrotS(csXyz const&);
|
||||
|
||||
static u8 now[48];
|
||||
};
|
||||
|
||||
struct fopAc_ac_c {};
|
||||
|
||||
struct cXyz {
|
||||
static u8 BaseZ[12];
|
||||
};
|
||||
|
||||
struct dPa_control_c {
|
||||
/* 8004C218 */ void setHitMark(u16, fopAc_ac_c*, cXyz const*, csXyz const*, cXyz const*, u32);
|
||||
};
|
||||
|
||||
struct dJntCol_c {
|
||||
/* 80036C44 */ void getHitmarkPosAndAngle(cXyz const*, csXyz const*, cXyz*, csXyz*, int) const;
|
||||
};
|
||||
|
||||
struct dCcD_GObjInf {
|
||||
/* 800843DC */ void ChkAtNoGuard();
|
||||
};
|
||||
|
||||
struct cCcD_GObjInf {};
|
||||
|
||||
struct cCcD_ShapeAttr {
|
||||
struct Shape {};
|
||||
};
|
||||
|
||||
struct cCcD_Stts {
|
||||
/* 80263934 */ void PlusCcMove(f32, f32, f32);
|
||||
/* 80263970 */ void PlusDmg(int);
|
||||
};
|
||||
|
||||
struct cCcD_GStts {};
|
||||
|
||||
struct cCcD_Obj {
|
||||
/* 80263A48 */ void GetAc();
|
||||
};
|
||||
|
||||
struct dCcD_GStts {};
|
||||
|
||||
struct dCcS {
|
||||
/* 8002FF40 */ ~dCcS();
|
||||
/* 80085ED4 */ void Ct();
|
||||
/* 80085F08 */ void Dt();
|
||||
/* 80085F28 */ void ChkShieldFrontRange(cCcD_Obj*, cCcD_Obj*, int, cXyz const*);
|
||||
/* 800860F8 */ void ChkShield(cCcD_Obj*, cCcD_Obj*, dCcD_GObjInf*, dCcD_GObjInf*, cXyz const*);
|
||||
/* 800861B0 */ void CalcTgPlusDmg(cCcD_Obj*, cCcD_Obj*, cCcD_Stts*, cCcD_Stts*);
|
||||
/* 800861B4 */ void ChkAtTgHitAfterCross(bool, bool, cCcD_GObjInf const*, cCcD_GObjInf const*,
|
||||
cCcD_Stts*, cCcD_Stts*, cCcD_GStts*, cCcD_GStts*);
|
||||
/* 80086240 */ void SetCoGObjInf(bool, bool, cCcD_GObjInf*, cCcD_GObjInf*, cCcD_Stts*,
|
||||
cCcD_Stts*, cCcD_GStts*, cCcD_GStts*);
|
||||
/* 80086360 */ void GetRank(u8);
|
||||
/* 80086404 */ bool ChkNoHitGCo(cCcD_Obj*, cCcD_Obj*);
|
||||
/* 8008640C */ void SetPosCorrect(cCcD_Obj*, cXyz*, cCcD_Obj*, cXyz*, f32);
|
||||
/* 80086754 */ void CalcParticleAngle(dCcD_GObjInf*, cCcD_Stts*, cCcD_Stts*, csXyz*);
|
||||
/* 8008685C */ void ProcAtTgHitmark(bool, bool, cCcD_Obj*, cCcD_Obj*, dCcD_GObjInf*,
|
||||
dCcD_GObjInf*, cCcD_Stts*, cCcD_Stts*, dCcD_GStts*,
|
||||
dCcD_GStts*, cXyz*, bool);
|
||||
/* 80086AC0 */ void SetAtTgGObjInf(bool, bool, cCcD_Obj*, cCcD_Obj*, cCcD_GObjInf*,
|
||||
cCcD_GObjInf*, cCcD_Stts*, cCcD_Stts*, cCcD_GStts*,
|
||||
cCcD_GStts*, cXyz*);
|
||||
/* 80086D8C */ void ChkCamera(cXyz&, cXyz&, f32, fopAc_ac_c*, fopAc_ac_c*, fopAc_ac_c*);
|
||||
/* 80086FBC */ void chkCameraPoint(cXyz const&, cCcD_ShapeAttr::Shape*, fopAc_ac_c*,
|
||||
fopAc_ac_c*);
|
||||
/* 800872A8 */ void MoveAfterCheck();
|
||||
/* 800872AC */ void DrawAfter();
|
||||
/* 800872B0 */ void Move();
|
||||
/* 800872D0 */ void Draw();
|
||||
/* 8008730C */ void MassClear();
|
||||
/* 80087330 */ void ChkAtTgMtrlHit(u8, u8);
|
||||
/* 8008734C */ void ChkNoHitGAtTg(cCcD_GObjInf const*, cCcD_GObjInf const*, cCcD_GStts*,
|
||||
cCcD_GStts*);
|
||||
|
||||
static u8 m_mtrl_hit_tbl[64];
|
||||
};
|
||||
|
||||
struct dCcMassS_Mng {
|
||||
/* 800855E4 */ void Ct();
|
||||
/* 80085CF0 */ void Clear();
|
||||
};
|
||||
|
||||
struct dCcD_GAtTgCoCommonBase {
|
||||
/* 80083678 */ void SetHitApid(unsigned int);
|
||||
/* 80083718 */ void SetEffCounterTimer();
|
||||
/* 80083748 */ void ChkEffCounter();
|
||||
};
|
||||
|
||||
struct cM3dGSphS {};
|
||||
|
||||
struct cM3dGSph {
|
||||
/* 8026F6A8 */ void Set(cM3dGSphS const&);
|
||||
};
|
||||
|
||||
struct cM3dGCps {
|
||||
/* 8026EF88 */ cM3dGCps();
|
||||
/* 8026EFA4 */ ~cM3dGCps();
|
||||
/* 8026F000 */ void Set(cXyz const&, cXyz const&, f32);
|
||||
};
|
||||
|
||||
struct cM3dGAab {};
|
||||
|
||||
struct cCcS {
|
||||
/* 80264A94 */ void Ct();
|
||||
/* 80264B60 */ void Dt();
|
||||
/* 80265CCC */ void Move();
|
||||
/* 80265D30 */ void DrawClear();
|
||||
/* 80265DF4 */ void SetCoGCorrectProc(cCcD_Obj*, cCcD_Obj*);
|
||||
};
|
||||
|
||||
struct cCcD_SphAttr {
|
||||
/* 8008721C */ ~cCcD_SphAttr();
|
||||
/* 802646E0 */ void CalcAabBox();
|
||||
};
|
||||
|
||||
struct cCcD_DivideInfo {
|
||||
/* 80263368 */ void Chk(cCcD_DivideInfo const&) const;
|
||||
};
|
||||
|
||||
struct cCcD_DivideArea {
|
||||
/* 802636A0 */ void CalcDivideInfoOverArea(cCcD_DivideInfo*, cM3dGAab const&);
|
||||
};
|
||||
|
||||
struct cCcD_CpsAttr {
|
||||
/* 80263FC4 */ void CalcAabBox();
|
||||
};
|
||||
|
||||
struct Vec {};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
@@ -211,13 +85,6 @@ extern "C" void Set__8cM3dGCpsFRC4cXyzRC4cXyzf();
|
||||
extern "C" void Set__8cM3dGSphFRC9cM3dGSphS();
|
||||
extern "C" void cLib_distanceAngleS__Fss();
|
||||
extern "C" void __dl__FPv();
|
||||
extern "C" void PSMTXMultVecSR();
|
||||
extern "C" void PSVECAdd();
|
||||
extern "C" void PSVECSubtract();
|
||||
extern "C" void PSVECScale();
|
||||
extern "C" void PSVECNormalize();
|
||||
extern "C" void PSVECMag();
|
||||
extern "C" void PSVECDotProduct();
|
||||
extern "C" void _savegpr_17();
|
||||
extern "C" void _savegpr_23();
|
||||
extern "C" void _savegpr_24();
|
||||
@@ -237,33 +104,22 @@ extern "C" extern void* __vt__12cCcD_SphAttr[25];
|
||||
extern "C" extern void* __vt__12cCcD_CpsAttr[25];
|
||||
extern "C" extern void* __vt__14cCcD_ShapeAttr[22];
|
||||
extern "C" u8 now__14mDoMtx_stack_c[48];
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" u8 BaseZ__4cXyz[12];
|
||||
extern "C" extern f32 G_CM3D_F_ABS_MIN[1 + 1 /* padding */];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 80085ED4-80085F08 080814 0034+00 0/0 1/1 0/0 .text Ct__4dCcSFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCcS::Ct() {
|
||||
nofralloc
|
||||
#include "asm/d/cc/d_cc_s/Ct__4dCcSFv.s"
|
||||
void dCcS::Ct() {
|
||||
cCcS::Ct();
|
||||
mMass_Mng.Ct();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80085F08-80085F28 080848 0020+00 0/0 1/1 0/0 .text Dt__4dCcSFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCcS::Dt() {
|
||||
nofralloc
|
||||
#include "asm/d/cc/d_cc_s/Dt__4dCcSFv.s"
|
||||
void dCcS::Dt() {
|
||||
cCcS::Dt();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80452778-8045277C 000D78 0004+00 3/3 0/0 0/0 .sdata2 @3705 */
|
||||
@@ -311,7 +167,7 @@ void dCcS::CalcTgPlusDmg(cCcD_Obj* param_0, cCcD_Obj* param_1, cCcD_Stts* param_
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCcS::ChkAtTgHitAfterCross(bool param_0, bool param_1, cCcD_GObjInf const* param_2,
|
||||
asm bool dCcS::ChkAtTgHitAfterCross(bool param_0, bool param_1, cCcD_GObjInf const* param_2,
|
||||
cCcD_GObjInf const* param_3, cCcD_Stts* param_4,
|
||||
cCcD_Stts* param_5, cCcD_GStts* param_6, cCcD_GStts* param_7) {
|
||||
nofralloc
|
||||
@@ -581,7 +437,8 @@ asm void dCcS::chkCameraPoint(cXyz const& param_0, cCcD_ShapeAttr::Shape* param_
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm cCcD_SphAttr::~cCcD_SphAttr() {
|
||||
// asm cCcD_SphAttr::~cCcD_SphAttr() {
|
||||
extern "C" asm void __dt__12cCcD_SphAttrFv() {
|
||||
nofralloc
|
||||
#include "asm/d/cc/d_cc_s/__dt__12cCcD_SphAttrFv.s"
|
||||
}
|
||||
@@ -598,34 +455,21 @@ void dCcS::DrawAfter() {
|
||||
}
|
||||
|
||||
/* 800872B0-800872D0 081BF0 0020+00 0/0 1/1 0/0 .text Move__4dCcSFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCcS::Move() {
|
||||
nofralloc
|
||||
#include "asm/d/cc/d_cc_s/Move__4dCcSFv.s"
|
||||
void dCcS::Move() {
|
||||
cCcS::Move();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800872D0-8008730C 081C10 003C+00 0/0 1/1 0/0 .text Draw__4dCcSFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCcS::Draw() {
|
||||
nofralloc
|
||||
#include "asm/d/cc/d_cc_s/Draw__4dCcSFv.s"
|
||||
void dCcS::Draw() {
|
||||
DrawAfter();
|
||||
DrawClear();
|
||||
mMass_Mng.Clear();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8008730C-80087330 081C4C 0024+00 0/0 0/0 1/1 .text MassClear__4dCcSFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCcS::MassClear() {
|
||||
nofralloc
|
||||
#include "asm/d/cc/d_cc_s/MassClear__4dCcSFv.s"
|
||||
void dCcS::MassClear() {
|
||||
mMass_Mng.Clear();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803AC3A4-803AC3E4 0094C4 0040+00 1/1 0/0 0/0 .data m_mtrl_hit_tbl__4dCcS */
|
||||
@@ -651,7 +495,7 @@ asm void dCcS::ChkAtTgMtrlHit(u8 param_0, u8 param_1) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dCcS::ChkNoHitGAtTg(cCcD_GObjInf const* param_0, cCcD_GObjInf const* param_1,
|
||||
asm bool dCcS::ChkNoHitGAtTg(cCcD_GObjInf const* param_0, cCcD_GObjInf const* param_1,
|
||||
cCcD_GStts* param_2, cCcD_GStts* param_3) {
|
||||
nofralloc
|
||||
#include "asm/d/cc/d_cc_s/ChkNoHitGAtTg__4dCcSFPC12cCcD_GObjInfPC12cCcD_GObjInfP10cCcD_GSttsP10cCcD_GStts.s"
|
||||
|
||||
@@ -230,7 +230,6 @@ extern "C" void __dt__8cM3dGCylFv();
|
||||
extern "C" void __dt__8cM3dGAabFv();
|
||||
extern "C" void __dt__15cCcD_DivideInfoFv();
|
||||
extern "C" extern char const* const d_com_d_com_inf_game__stringBase0;
|
||||
extern "C" extern u32 g_whiteColor;
|
||||
extern "C" extern u32 g_saftyWhiteColor;
|
||||
|
||||
//
|
||||
@@ -1327,7 +1326,7 @@ dTimer_c* dComIfG_play_c::getTimerPtr() {
|
||||
}
|
||||
|
||||
void dComIfG_inf_c::ct() {
|
||||
field_0x1ddf8 = 0xFF;
|
||||
mFadeBrightness = 255;
|
||||
play.ct();
|
||||
mWorldDark = 0;
|
||||
field_0x1ddfa = -1;
|
||||
@@ -1348,12 +1347,7 @@ SECTION_DEAD static char const* const stringBase_80379043 = "F_SP102";
|
||||
#pragma pop
|
||||
|
||||
/* 80450600-80450604 000080 0004+00 0/0 18/18 2/2 .sdata g_clearColor */
|
||||
SECTION_SDATA extern u8 g_clearColor[4] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
SECTION_SDATA extern GXColor g_clearColor = {0, 0, 0, 0};
|
||||
|
||||
/* 80450604-80450608 000084 0004+00 1/1 10/10 15/15 .sdata g_blackColor */
|
||||
SECTION_SDATA extern GXColor g_blackColor = {0, 0, 0, 255};
|
||||
@@ -2591,7 +2585,7 @@ asm void dComIfGs_staffroll_next_go_check() {
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80450608-8045060C 000088 0004+00 0/0 6/6 11/11 .sdata g_whiteColor */
|
||||
SECTION_SDATA extern u32 g_whiteColor = 0xFFFFFFFF;
|
||||
SECTION_SDATA extern GXColor g_whiteColor = {255, 255, 255, 255};
|
||||
|
||||
/* 8045060C-80450610 00008C 0004+00 0/0 3/3 3/3 .sdata g_saftyWhiteColor */
|
||||
SECTION_SDATA extern u32 g_saftyWhiteColor = 0xA0A0A0FF;
|
||||
|
||||
+4
-3
@@ -4,6 +4,7 @@
|
||||
//
|
||||
|
||||
#include "d/d_bomb.h"
|
||||
#include "d/d_procname.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
@@ -14,13 +15,13 @@ bool dBomb_c::checkStateCarry() {
|
||||
}
|
||||
|
||||
bool dBomb_c::checkFlowerBombWait(fopAc_ac_c* param_1) {
|
||||
return (fopAcM_GetName(&mActor) == 0x221 && fopAcM_GetParam(&mActor) == 4);
|
||||
return (fopAcM_GetName(&mActor) == PROC_NBOMB && fopAcM_GetParam(&mActor) == 4);
|
||||
}
|
||||
|
||||
bool dBomb_c::checkWaterBomb(fopAc_ac_c* param_1) {
|
||||
return (fopAcM_GetName(&mActor) == 0x221 && daNbomb_c::checkWaterBomb());
|
||||
return (fopAcM_GetName(&mActor) == PROC_NBOMB && daNbomb_c::checkWaterBomb());
|
||||
}
|
||||
|
||||
bool dBomb_c::checkInsectBombMove(fopAc_ac_c* param_1) {
|
||||
return (fopAcM_GetName(&mActor) == 0x221 && fopAcM_GetParam(&mActor) == 7);
|
||||
return (fopAcM_GetName(&mActor) == PROC_NBOMB && fopAcM_GetParam(&mActor) == 7);
|
||||
}
|
||||
@@ -184,7 +184,7 @@ extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8037B140-8037B180 0077A0 0040+00 1/1 0/0 0/0 .rodata black_tex */
|
||||
SECTION_RODATA static u8 const black_tex[64] = {
|
||||
SECTION_RODATA static u8 const black_tex[64] ALIGN_DECL(32) = {
|
||||
0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
|
||||
+76
-43
@@ -4,7 +4,10 @@
|
||||
//
|
||||
|
||||
#include "d/d_eye_hl.h"
|
||||
#include "MSL_C.PPCEABI.bare.H/MSL_Common/Src/string.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/os/OS.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
@@ -26,52 +29,45 @@ extern "C" extern u8 struct_80450FBC[4];
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void OSReport_Error();
|
||||
extern "C" void getName__10JUTNameTabCFUs();
|
||||
extern "C" void _savegpr_27();
|
||||
extern "C" void _restgpr_27();
|
||||
extern "C" void strcmp();
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" extern u8 g_envHIO[68];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8037B100-8037B100 007760 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_8037B100 =
|
||||
"目のハイライトテクスチャーがありません!\n";
|
||||
/* @stringBase0 padding */
|
||||
SECTION_DEAD static char const* const pad_8037B12A = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";
|
||||
#pragma pop
|
||||
|
||||
/* 8009C964-8009CA28 0972A4 00C4+00 0/0 2/2 0/0 .text entry__8dEyeHL_cFP12J3DModelDataPCc
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEyeHL_c::entry(J3DModelData* param_0, char const* param_1) {
|
||||
nofralloc
|
||||
#include "asm/d/d_eye_hl/entry__8dEyeHL_cFP12J3DModelDataPCc.s"
|
||||
void dEyeHL_c::entry(J3DModelData* p_mData, char const* name) {
|
||||
J3DTexture* tex = p_mData->getTexture();
|
||||
JUTNameTab* tex_nametab = p_mData->getTextureName();
|
||||
|
||||
if (tex != NULL && tex_nametab != NULL) {
|
||||
for (u16 i = 0; i < tex->getNum(); i++) {
|
||||
const char* tex_name = tex_nametab->getName(i);
|
||||
|
||||
if (tex_name != NULL && !strcmp(tex_name, name)) {
|
||||
m_timg = tex->getResTIMG(i);
|
||||
m_lodBias = m_timg->LODBias;
|
||||
dEyeHL_mng_c::entry(this);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
// "Eye Highlight Texture doesn't exist!\n"
|
||||
OSReport_Error("目のハイライトテクスチャーがありません!\n");
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8009CA28-8009CA48 097368 0020+00 0/0 3/3 0/0 .text remove__8dEyeHL_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEyeHL_c::remove() {
|
||||
nofralloc
|
||||
#include "asm/d/d_eye_hl/remove__8dEyeHL_cFv.s"
|
||||
void dEyeHL_c::remove() {
|
||||
dEyeHL_mng_c::remove(this);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80450FA8-80450FB0 0004A8 0004+04 3/3 0/0 0/0 .sbss m_obj__12dEyeHL_mng_c */
|
||||
u8 dEyeHL_mng_c::m_obj[4 + 4 /* padding */];
|
||||
dEyeHL_mng_c* dEyeHL_mng_c::m_obj;
|
||||
|
||||
/* 80452C10-80452C14 001210 0004+00 1/1 0/0 0/0 .sdata2 @3862 */
|
||||
SECTION_SDATA2 static f32 lit_3862 = 2.0f;
|
||||
@@ -79,7 +75,30 @@ SECTION_SDATA2 static f32 lit_3862 = 2.0f;
|
||||
/* 80452C14-80452C18 001214 0004+00 1/1 0/0 0/0 .sdata2 @3863 */
|
||||
SECTION_SDATA2 static f32 lit_3863 = 45.0f;
|
||||
|
||||
inline BOOL dComIfGp_event_runCheck() {
|
||||
return g_dComIfG_gameInfo.play.getEvent().runCheck();
|
||||
}
|
||||
|
||||
/* 8009CA48-8009CB14 097388 00CC+00 0/0 1/1 0/0 .text update__12dEyeHL_mng_cFv */
|
||||
// small issue with cLib_minMaxLimit
|
||||
#ifdef NONMATCHING
|
||||
void dEyeHL_mng_c::update() {
|
||||
dEyeHL_mng_c* obj = m_obj;
|
||||
|
||||
if (g_envHIO[0x10] == 0 || !dComIfGp_event_runCheck()) {
|
||||
for (; obj != NULL; obj = obj->m_next) {
|
||||
obj->m_timg->LODBias = obj->m_lodBias;
|
||||
}
|
||||
} else {
|
||||
s16 tmp = 2.0f * (dComIfGd_getView()->field_0xd0 - 45.0f);
|
||||
for (; obj != NULL; obj = obj->m_next) {
|
||||
ResTIMG* timg = obj->m_timg;
|
||||
timg->LODBias = obj->m_lodBias + tmp;
|
||||
timg->LODBias = cLib_minMaxLimit(timg->LODBias, (s16)-400, (s16)399);
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -88,27 +107,41 @@ asm void dEyeHL_mng_c::update() {
|
||||
#include "asm/d/d_eye_hl/update__12dEyeHL_mng_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8009CB14-8009CB34 097454 0020+00 1/1 0/0 0/0 .text entry__12dEyeHL_mng_cFP8dEyeHL_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEyeHL_mng_c::entry(dEyeHL_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_eye_hl/entry__12dEyeHL_mng_cFP8dEyeHL_c.s"
|
||||
void dEyeHL_mng_c::entry(dEyeHL_c* i_obj) {
|
||||
if (m_obj != NULL) {
|
||||
m_obj->m_pre = i_obj;
|
||||
}
|
||||
i_obj->m_next = m_obj;
|
||||
m_obj = i_obj;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8009CB34-8009CB88 097474 0054+00 1/1 0/0 0/0 .text remove__12dEyeHL_mng_cFP8dEyeHL_c
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dEyeHL_mng_c::remove(dEyeHL_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/d_eye_hl/remove__12dEyeHL_mng_cFP8dEyeHL_c.s"
|
||||
void dEyeHL_mng_c::remove(dEyeHL_c* i_obj) {
|
||||
if (i_obj->m_timg != NULL) {
|
||||
dEyeHL_mng_c* prev = i_obj->m_pre;
|
||||
dEyeHL_mng_c* next = i_obj->m_next;
|
||||
|
||||
if (next != NULL) {
|
||||
next->m_pre = prev;
|
||||
}
|
||||
|
||||
if (prev == NULL) {
|
||||
m_obj = next;
|
||||
} else {
|
||||
prev->m_next = next;
|
||||
next = m_obj;
|
||||
}
|
||||
|
||||
i_obj->m_timg->LODBias = i_obj->m_lodBias;
|
||||
i_obj->m_timg = NULL;
|
||||
i_obj->m_pre = NULL;
|
||||
i_obj->m_next = NULL;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80450FB0-80450FB8 -00001 0008+00 0/0 2/2 0/0 .sbss None */
|
||||
@@ -116,7 +149,7 @@ asm void dEyeHL_mng_c::remove(dEyeHL_c* param_0) {
|
||||
/* 80450FB1 0001+00 data_80450FB1 None */
|
||||
/* 80450FB2 0006+00 data_80450FB2 None */
|
||||
extern u8 struct_80450FB0[8];
|
||||
u8 struct_80450FB0[8];
|
||||
u8 struct_80450FB0[8] ALIGN_DECL(8);
|
||||
|
||||
/* 80450FB8-80450FBC -00001 0004+00 0/0 1/1 0/0 .sbss None */
|
||||
/* 80450FB8 0001+00 data_80450FB8 None */
|
||||
|
||||
+7
-4
@@ -8,6 +8,8 @@
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
@@ -42,12 +44,8 @@ extern "C" void dKyw_wether_move_draw__Fv();
|
||||
extern "C" void dKyw_wether_draw__Fv();
|
||||
extern "C" void dKy_FiveSenses_fullthrottle_dark__Fv();
|
||||
extern "C" void framework__10Z2EnvSeMgrFv();
|
||||
extern "C" void OSGetTime();
|
||||
extern "C" void OSTicksToCalendarTime();
|
||||
extern "C" void strcmp();
|
||||
extern "C" extern void* g_fopKy_Method[5 + 1 /* padding */];
|
||||
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" extern u8 g_env_light[4880];
|
||||
extern "C" extern u8 g_mEnvSeMgr[780];
|
||||
|
||||
@@ -55,6 +53,11 @@ extern "C" extern u8 g_mEnvSeMgr[780];
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 801ADD00-801ADD38 1A8640 0038+00 2/2 0/0 0/0 .text dKankyo_DayProc__Fv */
|
||||
void dKankyo_DayProc() {
|
||||
dComIfGs_offTmpBit(dSv_event_tmp_flag_c::tempBitLabels[91]);
|
||||
}
|
||||
|
||||
static bool dKyeff_Draw(dKyeff_c* ptr) {
|
||||
dKyw_wether_draw();
|
||||
return true;
|
||||
|
||||
+454
-343
File diff suppressed because it is too large
Load Diff
@@ -66,76 +66,101 @@ extern "C" extern u8 g_env_light[4880];
|
||||
//
|
||||
|
||||
/* 803A8E98-803A9198 005FB8 0300+00 1/1 0/0 0/0 .data l_kydata_BloomInf_tbl */
|
||||
SECTION_DATA static u8 l_kydata_BloomInf_tbl[768] = {
|
||||
// Each is 0xc long; All u8's
|
||||
0x01, 0xFF, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
|
||||
0x00, 0x28, 0x46, 0x87, 0xCF, 0xB1, 0x38, 0xD2, 0xFF, 0xFF, 0xFF, 0x60, //
|
||||
0x00, 0x2D, 0x46, 0x73, 0xCF, 0xB1, 0x38, 0xD2, 0xFF, 0xFF, 0xFF, 0x60, //
|
||||
0x00, 0x00, 0x40, 0x30, 0x60, 0xBA, 0xEC, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
|
||||
0x01, 0x40, 0x50, 0x40, 0x86, 0x83, 0x96, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
|
||||
0x01, 0x64, 0x50, 0x50, 0xFF, 0xD7, 0x96, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
|
||||
0x01, 0xA0, 0x30, 0xC8, 0x81, 0x77, 0x6F, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
|
||||
0x01, 0x64, 0x40, 0x60, 0xFF, 0x60, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
|
||||
0x01, 0x60, 0x5E, 0x60, 0x69, 0x86, 0xA5, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
|
||||
0x01, 0x40, 0x60, 0x6E, 0x58, 0xA5, 0x8C, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
|
||||
0x00, 0x23, 0x2F, 0x9B, 0x7D, 0x6E, 0x50, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
|
||||
0x01, 0x30, 0x40, 0x80, 0x3C, 0xB7, 0xA0, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
|
||||
0x01, 0x38, 0x5F, 0x82, 0x7D, 0x87, 0x93, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
|
||||
0x01, 0x73, 0x6C, 0xFF, 0xED, 0xFF, 0xCA, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
|
||||
0x01, 0x31, 0x30, 0xC8, 0x97, 0xAB, 0xA0, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
|
||||
0x00, 0x28, 0x46, 0x78, 0x42, 0x2E, 0x30, 0xFF, 0x80, 0xFF, 0xFF, 0x54, //
|
||||
0x00, 0x28, 0x46, 0x87, 0x96, 0xB4, 0x64, 0xD2, 0xFF, 0xFF, 0xFF, 0x54, //
|
||||
0x01, 0x28, 0x46, 0x73, 0x78, 0x96, 0xA0, 0x0D, 0x00, 0x00, 0x00, 0x00, //
|
||||
0x01, 0x00, 0x7D, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, //
|
||||
0x00, 0x62, 0x69, 0x80, 0xB2, 0x5F, 0x00, 0xFF, 0xE4, 0xFF, 0xFF, 0x90, //
|
||||
0x01, 0x30, 0x40, 0x59, 0xFF, 0xEF, 0x86, 0xCE, 0xFF, 0xD5, 0x8C, 0xC8, //
|
||||
0x01, 0x6E, 0x46, 0x9A, 0xFF, 0xD7, 0x06, 0xE0, 0xFF, 0xDC, 0xA7, 0x49, //
|
||||
0x01, 0x40, 0x60, 0x40, 0x6E, 0x80, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
|
||||
0x00, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00, //
|
||||
0x00, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00, //
|
||||
0x01, 0x8C, 0x2D, 0xA0, 0x63, 0x55, 0x49, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
|
||||
0x01, 0x5F, 0x59, 0x5A, 0x96, 0x91, 0x84, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
|
||||
0x00, 0x52, 0x64, 0x3C, 0xFF, 0xC2, 0x70, 0xBA, 0xFF, 0xFF, 0xFF, 0x00, //
|
||||
0x00, 0x8C, 0x2D, 0xA0, 0x63, 0x55, 0x49, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
|
||||
0x01, 0x46, 0x5A, 0x41, 0x3C, 0x50, 0x46, 0xFF, 0xFA, 0xFF, 0x9B, 0x78, //
|
||||
0x01, 0x2E, 0x60, 0x7D, 0x64, 0x96, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
|
||||
0x00, 0x00, 0x83, 0xFF, 0x72, 0xD1, 0xFF, 0xFF, 0xFF, 0xE2, 0xFE, 0x7D, //
|
||||
0x00, 0x5F, 0x14, 0xB4, 0x50, 0x96, 0xFA, 0xFF, 0xFF, 0xFF, 0xFF, 0x64, //
|
||||
0x00, 0x28, 0x46, 0x87, 0x82, 0xC8, 0xFA, 0xD2, 0xFF, 0xFF, 0xFF, 0x32, //
|
||||
0x00, 0x20, 0x10, 0x50, 0x64, 0x64, 0x32, 0xFF, 0x96, 0xFF, 0xFF, 0x82, //
|
||||
0x00, 0x00, 0x00, 0x30, 0x00, 0xBA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
|
||||
0x01, 0x40, 0x50, 0x40, 0x86, 0x83, 0x96, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
|
||||
0x01, 0x64, 0x50, 0x50, 0xFF, 0xD7, 0x96, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
|
||||
0x01, 0xA0, 0x30, 0xC8, 0x81, 0x77, 0x6F, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
|
||||
0x01, 0x64, 0x40, 0x60, 0xFF, 0x60, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, //
|
||||
0x01, 0x30, 0x30, 0x60, 0x6F, 0x69, 0x52, 0xFF, 0xC0, 0xB9, 0xA1, 0x80, //
|
||||
0x01, 0x2D, 0x60, 0x87, 0xFF, 0xE0, 0x46, 0xFF, 0xFF, 0x85, 0x79, 0x60, //
|
||||
0x00, 0x00, 0x88, 0x6A, 0x85, 0x3E, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0x11, //
|
||||
0x00, 0x2E, 0x41, 0x64, 0xF9, 0xE7, 0x7C, 0xD0, 0xFF, 0xDA, 0x9A, 0xBB, //
|
||||
0x00, 0x00, 0xFF, 0xFF, 0xBE, 0xB9, 0xB4, 0xE6, 0xFF, 0xFF, 0xFF, 0x00, //
|
||||
0x00, 0x2D, 0x46, 0x50, 0xCF, 0xB1, 0x38, 0xD2, 0xFF, 0xFF, 0xFF, 0x60, //
|
||||
0x00, 0xA0, 0x14, 0x32, 0xE6, 0xFF, 0x96, 0xF3, 0xE6, 0xFF, 0x96, 0x6E, //
|
||||
0x00, 0x52, 0x64, 0x3C, 0xFF, 0xC2, 0x70, 0xBA, 0xFF, 0xFF, 0xFF, 0x00, //
|
||||
0x00, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xFF, 0x00, //
|
||||
0x01, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0x00, //
|
||||
0x00, 0x00, 0x7D, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, //
|
||||
0x00, 0x62, 0x69, 0x80, 0xB2, 0x5F, 0x00, 0xFF, 0xE4, 0xFF, 0xFF, 0x90, //
|
||||
0x01, 0x30, 0x40, 0x59, 0xFF, 0xEF, 0x86, 0xCE, 0xFF, 0xD5, 0x8C, 0xC8, //
|
||||
0x01, 0x6E, 0x46, 0x9A, 0xFF, 0xD7, 0x06, 0xE0, 0xFF, 0xDC, 0xA7, 0x49, //
|
||||
0x00, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00, //
|
||||
0x00, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00, //
|
||||
0x00, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00, //
|
||||
0x00, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00, //
|
||||
0x00, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00, //
|
||||
0x00, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00, //
|
||||
0x00, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00, //
|
||||
0x00, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00, //
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //
|
||||
static dKydata_BloomInfo_c l_kydata_BloomInf_tbl[BLOOMINFO_MAX] = {
|
||||
{BLOOM_SOFT, 0xFF, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00},
|
||||
{BLOOM_CLEAR, 0x28, 0x46, 0x87, 0xCF, 0xB1, 0x38, 0xD2, 0xFF, 0xFF, 0xFF, 0x60}, // Twilight
|
||||
{BLOOM_CLEAR, 0x2D, 0x46, 0x73, 0xCF, 0xB1, 0x38, 0xD2, 0xFF, 0xFF, 0xFF,
|
||||
0x60}, // Twilight Weak
|
||||
{BLOOM_CLEAR, 0x00, 0x40, 0x30, 0x60, 0xBA, 0xEC, 0xFF, 0xFF, 0xFF, 0xFF, 0x00}, // Senses
|
||||
{BLOOM_SOFT, 0x40, 0x50, 0x40, 0x86, 0x83, 0x96, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00}, // Field Normal (Morning 0)
|
||||
{BLOOM_SOFT, 0x64, 0x50, 0x50, 0xFF, 0xD7, 0x96, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00}, // Field Normal (Morning 1)
|
||||
{BLOOM_SOFT, 0xA0, 0x30, 0xC8, 0x81, 0x77, 0x6F, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00}, // Field Normal (Afternoon)
|
||||
{BLOOM_SOFT, 0x64, 0x40, 0x60, 0xFF, 0x60, 0x00, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00}, // Field Normal (Evening 0)
|
||||
{BLOOM_SOFT, 0x60, 0x5E, 0x60, 0x69, 0x86, 0xA5, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00}, // Field Normal (Evening 1)
|
||||
{BLOOM_SOFT, 0x40, 0x60, 0x6E, 0x58, 0xA5, 0x8C, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00}, // Field Normal (Night)
|
||||
{BLOOM_CLEAR, 0x23, 0x2F, 0x9B, 0x7D, 0x6E, 0x50, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00}, // Bulblin Camp Fire
|
||||
{BLOOM_SOFT, 0x30, 0x40, 0x80, 0x3C, 0xB7, 0xA0, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00}, // Palace of Twilight
|
||||
{BLOOM_SOFT, 0x38, 0x5F, 0x82, 0x7D, 0x87, 0x93, 0xFF, 0xFF, 0xFF, 0xFF, 0x00}, // demo28_03
|
||||
{BLOOM_SOFT, 0x73, 0x6C, 0xFF, 0xED, 0xFF, 0xCA, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00}, // Golden Bug Glow
|
||||
{BLOOM_SOFT, 0x31, 0x30, 0xC8, 0x97, 0xAB, 0xA0, 0xFF, 0xFF, 0xFF, 0xFF, 0x00}, // Cloud Sea
|
||||
{BLOOM_CLEAR, 0x28, 0x46, 0x78, 0x42, 0x2E, 0x30, 0xFF, 0x80, 0xFF, 0xFF,
|
||||
0x54}, // Zora's Domain Outside (Twilight)
|
||||
{BLOOM_CLEAR, 0x28, 0x46, 0x87, 0x96, 0xB4, 0x64, 0xD2, 0xFF, 0xFF, 0xFF,
|
||||
0x54}, // Zora's Domain Inside (Twilight)
|
||||
{BLOOM_SOFT, 0x28, 0x46, 0x73, 0x78, 0x96, 0xA0, 0x0D, 0x00, 0x00, 0x00, 0x00}, // Senses-like
|
||||
{BLOOM_SOFT, 0x00, 0x7D, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF}, // Sacred Grove Time Travel
|
||||
{BLOOM_CLEAR, 0x62, 0x69, 0x80, 0xB2, 0x5F, 0x00, 0xFF, 0xE4, 0xFF, 0xFF, 0x90}, // Sewers
|
||||
{BLOOM_SOFT, 0x30, 0x40, 0x59, 0xFF, 0xEF, 0x86, 0xCE, 0xFF, 0xD5, 0x8C,
|
||||
0xC8}, // Flashback Scene
|
||||
{BLOOM_SOFT, 0x6E, 0x46, 0x9A, 0xFF, 0xD7, 0x06, 0xE0, 0xFF, 0xDC, 0xA7,
|
||||
0x49}, // Twilight Gate
|
||||
{BLOOM_SOFT, 0x40, 0x60, 0x40, 0x6E, 0x80, 0x80, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00}, // Underwater (Normal)
|
||||
{BLOOM_CLEAR, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
|
||||
{BLOOM_CLEAR, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
|
||||
{BLOOM_SOFT, 0x8C, 0x2D, 0xA0, 0x63, 0x55, 0x49, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00}, // Dungeon Normal Weak
|
||||
{BLOOM_SOFT, 0x5F, 0x59, 0x5A, 0x96, 0x91, 0x84, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00}, // Dungeon Normal Strong
|
||||
{BLOOM_CLEAR, 0x52, 0x64, 0x3C, 0xFF, 0xC2, 0x70, 0xBA, 0xFF, 0xFF, 0xFF, 0x00}, // Lava
|
||||
{BLOOM_CLEAR, 0x8C, 0x2D, 0xA0, 0x63, 0x55, 0x49, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x00}, // Goron Mines - No Lava
|
||||
{BLOOM_SOFT, 0x46, 0x5A, 0x41, 0x3C, 0x50, 0x46, 0xFF, 0xFA, 0xFF, 0x9B,
|
||||
0x78}, // Sacred Grove Past
|
||||
{BLOOM_SOFT, 0x2E, 0x60, 0x7D, 0x64, 0x96, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0x00}, // Castle
|
||||
{BLOOM_CLEAR, 0x00, 0x83, 0xFF, 0x72, 0xD1, 0xFF, 0xFF, 0xFF, 0xE2, 0xFE, 0x7D}, // Empty
|
||||
{BLOOM_CLEAR, 0x5F, 0x14, 0xB4, 0x50, 0x96, 0xFA, 0xFF, 0xFF, 0xFF, 0xFF, 0x64}, // Empty
|
||||
{BLOOM_CLEAR, 0x28, 0x46, 0x87, 0x82, 0xC8, 0xFA, 0xD2, 0xFF, 0xFF, 0xFF, 0x32}, // Empty
|
||||
{BLOOM_CLEAR, 0x20, 0x10, 0x50, 0x64, 0x64, 0x32, 0xFF, 0x96, 0xFF, 0xFF, 0x82}, // Empty
|
||||
{BLOOM_CLEAR, 0x00, 0x00, 0x30, 0x00, 0xBA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
|
||||
{BLOOM_SOFT, 0x40, 0x50, 0x40, 0x86, 0x83, 0x96, 0xFF, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
|
||||
{BLOOM_SOFT, 0x64, 0x50, 0x50, 0xFF, 0xD7, 0x96, 0xFF, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
|
||||
{BLOOM_SOFT, 0xA0, 0x30, 0xC8, 0x81, 0x77, 0x6F, 0xFF, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
|
||||
{BLOOM_SOFT, 0x64, 0x40, 0x60, 0xFF, 0x60, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
|
||||
{BLOOM_SOFT, 0x30, 0x30, 0x60, 0x6F, 0x69, 0x52, 0xFF, 0xC0, 0xB9, 0xA1,
|
||||
0x80}, // Demo: Flashback Scene
|
||||
{BLOOM_SOFT, 0x2D, 0x60, 0x87, 0xFF, 0xE0, 0x46, 0xFF, 0xFF, 0x85, 0x79,
|
||||
0x60}, // Demo: Fake Twilight
|
||||
{BLOOM_CLEAR, 0x00, 0x88, 0x6A, 0x85, 0x3E, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0x11}, // Demo: demo32_03
|
||||
{BLOOM_CLEAR, 0x2E, 0x41, 0x64, 0xF9, 0xE7, 0x7C, 0xD0, 0xFF, 0xDA, 0x9A,
|
||||
0xBB}, // Demo: Twilight Flashback Scene
|
||||
{BLOOM_CLEAR, 0x00, 0xFF, 0xFF, 0xBE, 0xB9, 0xB4, 0xE6, 0xFF, 0xFF, 0xFF,
|
||||
0x00}, // Demo: demo31_20
|
||||
{BLOOM_CLEAR, 0x2D, 0x46, 0x50, 0xCF, 0xB1, 0x38, 0xD2, 0xFF, 0xFF, 0xFF,
|
||||
0x60}, // Demo: Lava W
|
||||
{BLOOM_CLEAR, 0xA0, 0x14, 0x32, 0xE6, 0xFF, 0x96, 0xF3, 0xE6, 0xFF, 0x96, 0x6E}, // Empty
|
||||
{BLOOM_CLEAR, 0x52, 0x64, 0x3C, 0xFF, 0xC2, 0x70, 0xBA, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
|
||||
{BLOOM_CLEAR, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
|
||||
{BLOOM_SOFT, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF0, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
|
||||
{BLOOM_CLEAR, 0x00, 0x7D, 0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF}, // Empty
|
||||
{BLOOM_CLEAR, 0x62, 0x69, 0x80, 0xB2, 0x5F, 0x00, 0xFF, 0xE4, 0xFF, 0xFF, 0x90}, // Empty
|
||||
{BLOOM_SOFT, 0x30, 0x40, 0x59, 0xFF, 0xEF, 0x86, 0xCE, 0xFF, 0xD5, 0x8C, 0xC8}, // Empty
|
||||
{BLOOM_SOFT, 0x6E, 0x46, 0x9A, 0xFF, 0xD7, 0x06, 0xE0, 0xFF, 0xDC, 0xA7, 0x49}, // Empty
|
||||
{BLOOM_CLEAR, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
|
||||
{BLOOM_CLEAR, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
|
||||
{BLOOM_CLEAR, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
|
||||
{BLOOM_CLEAR, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
|
||||
{BLOOM_CLEAR, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
|
||||
{BLOOM_CLEAR, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
|
||||
{BLOOM_CLEAR, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
|
||||
{BLOOM_CLEAR, 0x80, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0x00}, // Empty
|
||||
{BLOOM_CLEAR, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // Empty
|
||||
{BLOOM_CLEAR, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // Empty
|
||||
};
|
||||
|
||||
/* 803A9198-803A92A8 -00001 0110+00 1/1 0/0 0/0 .data l_darkworld_tbl */
|
||||
static dKyd_darkworldTblEntry l_darkworld_tbl[34] = {
|
||||
static dKydata_darkworldInfo_c l_darkworld_tbl[34] = {
|
||||
{"R_SP30", UNCLEARABLE}, // UNUSED - Unknown Room
|
||||
{"T_SP05", TEST}, // UNUSED - E3 2005 Warp Test (Old)
|
||||
{"T_SP05A", TEST}, // UNUSED - Ito Warp Test
|
||||
@@ -172,13 +197,8 @@ static dKyd_darkworldTblEntry l_darkworld_tbl[34] = {
|
||||
{"D_SB10", FARON}, // Faron Woods Cave
|
||||
};
|
||||
|
||||
// TODO: wrong type
|
||||
// Only thing I can easily find: the byte is written to 8042DD4D and it seems to control the Y
|
||||
// pos(?) (essentially brightness) of the soft spotlight that is on wolf Link during twilight? Will
|
||||
// need more investigation before can be changed to appropriate type. Leaving this way since the
|
||||
// stageNames are already converted.
|
||||
/* 803A92A8-803A93C8 -00001 0120+00 1/1 0/0 0/0 .data l_light_size_tbl */
|
||||
static dKyd_darkworldTblEntry l_light_size_tbl[36] = {
|
||||
static dKydata_lightsizeInfo_c l_light_size_tbl[36] = {
|
||||
{"R_SP01", 0}, // Ordon Interiors
|
||||
{"R_SP108", 0}, // Coro's Lantern Shop
|
||||
{"F_SP109", 2}, // Kakariko Village
|
||||
@@ -217,9 +237,8 @@ static dKyd_darkworldTblEntry l_light_size_tbl[36] = {
|
||||
{"D_SB10", 0}, // Faron Woods Cave
|
||||
};
|
||||
|
||||
// TODO: wrong type
|
||||
/* 803A93C8-803A9410 -00001 0048+00 1/1 0/0 0/0 .data l_light_size_tbl_tw */
|
||||
static dKyd_darkworldTblEntry l_light_size_tbl_tw[9] = {
|
||||
static dKydata_lightsizeInfo_c l_light_size_tbl_tw[9] = {
|
||||
{"F_SP109", 2}, // Kakariko Village
|
||||
{"F_SP110", 2}, // Death Mountain
|
||||
{"R_SP209", 2}, // Sanctuary Basement
|
||||
@@ -445,23 +464,23 @@ void* dKyd_maple_col_getp() {
|
||||
}
|
||||
|
||||
/* 80056A70-80056A7C 0513B0 000C+00 0/0 4/4 0/0 .text dKyd_darkworld_tbl_getp__Fv */
|
||||
dKyd_darkworldTblEntry* dKyd_darkworld_tbl_getp() {
|
||||
dKydata_darkworldInfo_c* dKyd_darkworld_tbl_getp() {
|
||||
return l_darkworld_tbl;
|
||||
}
|
||||
|
||||
/* 80056A7C-80056A88 0513BC 000C+00 0/0 1/1 0/0 .text dKyd_light_size_tbl_getp__Fv */
|
||||
void* dKyd_light_size_tbl_getp() {
|
||||
dKydata_lightsizeInfo_c* dKyd_light_size_tbl_getp() {
|
||||
return l_light_size_tbl;
|
||||
}
|
||||
|
||||
/* 80056A88-80056A94 0513C8 000C+00 0/0 1/1 0/0 .text dKyd_light_tw_size_tbl_getp__Fv */
|
||||
void* dKyd_light_tw_size_tbl_getp() {
|
||||
dKydata_lightsizeInfo_c* dKyd_light_tw_size_tbl_getp() {
|
||||
return l_light_size_tbl_tw;
|
||||
}
|
||||
|
||||
/* 80056A94-80056AA8 0513D4 0014+00 0/0 1/1 0/0 .text dKyd_BloomInf_tbl_getp__Fi */
|
||||
void* dKyd_BloomInf_tbl_getp(int tblIdx) {
|
||||
return &l_kydata_BloomInf_tbl[tblIdx * 0xC];
|
||||
dKydata_BloomInfo_c* dKyd_BloomInf_tbl_getp(int tblIdx) {
|
||||
return &l_kydata_BloomInf_tbl[tblIdx];
|
||||
}
|
||||
|
||||
/* 8037A1C0-8037A1C0 006820 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
||||
+967
-983
File diff suppressed because it is too large
Load Diff
+56
-54
@@ -17,14 +17,13 @@ struct dRes_control_c {
|
||||
/* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int);
|
||||
};
|
||||
|
||||
|
||||
struct dMpath_n {
|
||||
struct dTexObjAggregate_c {
|
||||
/* 8003C85C */ void create();
|
||||
/* 8003C8F4 */ void remove();
|
||||
/* 8003D740 */ ~dTexObjAggregate_c() {remove();};
|
||||
/* 8003D740 */ ~dTexObjAggregate_c() { remove(); };
|
||||
inline dTexObjAggregate_c() {
|
||||
for(int i = 0;i<7;i++) {
|
||||
for (int i = 0; i < 7; i++) {
|
||||
mTexObjs[i] = NULL;
|
||||
}
|
||||
}
|
||||
@@ -34,7 +33,7 @@ struct dMpath_n {
|
||||
static dTexObjAggregate_c m_texObjAgg;
|
||||
};
|
||||
|
||||
STATIC_ASSERT(sizeof(dMpath_n::dTexObjAggregate_c)==28);
|
||||
STATIC_ASSERT(sizeof(dMpath_n::dTexObjAggregate_c) == 28);
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
@@ -245,42 +244,43 @@ asm void dRenderingFDAmap_c::setTevSettingIntensityTextureToCI() const {
|
||||
*/
|
||||
void dRenderingFDAmap_c::drawBack() const {
|
||||
GXClearVtxDesc();
|
||||
GXSetVtxDesc(GX_VA_POS,GX_DIRECT);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0,GX_VA_POS,GX_CLR_RGBA,GX_F32,0);
|
||||
GXSetVtxDesc(GX_VA_POS, GX_DIRECT);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_CLR_RGBA, GX_F32, 0);
|
||||
GXColor* colorPtr = getBackColor();
|
||||
GXSetTevColor(GX_TEVREG0,*colorPtr);
|
||||
GXBegin(GX_QUADS,GX_VTXFMT0,4);
|
||||
GXPosition3f32(-field_0x8,-field_0xc,0);
|
||||
GXPosition3f32(field_0x8,-field_0xc,0);
|
||||
GXPosition3f32(field_0x8,field_0xc,0);
|
||||
GXPosition3f32(-field_0x8,field_0xc,0);
|
||||
GXSetTevColor(GX_TEVREG0, *colorPtr);
|
||||
GXBegin(GX_QUADS, GX_VTXFMT0, 4);
|
||||
GXPosition3f32(-field_0x8, -field_0xc, 0);
|
||||
GXPosition3f32(field_0x8, -field_0xc, 0);
|
||||
GXPosition3f32(field_0x8, field_0xc, 0);
|
||||
GXPosition3f32(-field_0x8, field_0xc, 0);
|
||||
GXEnd();
|
||||
}
|
||||
|
||||
/* 8003D188-8003D320 037AC8 0198+00 1/0 8/0 0/0 .text preRenderingMap__18dRenderingFDAmap_cFv */
|
||||
void dRenderingFDAmap_c::preRenderingMap() {
|
||||
GXSetViewport(0.0f,0.0f,field_0x1c,field_0x1e,0.0f,1.0f);
|
||||
GXSetScissor(0,0,field_0x1c,field_0x1e);
|
||||
GXSetViewport(0.0f, 0.0f, field_0x1c, field_0x1e, 0.0f, 1.0f);
|
||||
GXSetScissor(0, 0, field_0x1c, field_0x1e);
|
||||
GXSetNumChans(1);
|
||||
GXSetNumTevStages(1);
|
||||
GXSetChanCtrl(GX_COLOR0A0,GX_FALSE,GX_SRC_REG,GX_SRC_REG,GX_LIGHT_NULL,GX_DF_NONE,GX_AF_NONE);
|
||||
GXSetAlphaCompare(GX_ALWAYS,0,GX_AOP_OR,GX_ALWAYS,0);
|
||||
GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, GX_LIGHT_NULL, GX_DF_NONE,
|
||||
GX_AF_NONE);
|
||||
GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_OR, GX_ALWAYS, 0);
|
||||
GXSetZCompLoc(GX_TRUE);
|
||||
GXSetZMode(GX_FALSE,GX_ALWAYS,GX_FALSE);
|
||||
GXSetBlendMode(GX_BM_NONE,GX_BL_SRC_ALPHA,GX_BL_INV_SRC_ALPHA,GX_LO_CLEAR);
|
||||
GXSetZMode(GX_FALSE, GX_ALWAYS, GX_FALSE);
|
||||
GXSetBlendMode(GX_BM_NONE, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_CLEAR);
|
||||
GXColor color = g_clearColor;
|
||||
GXSetFog(GX_FOG_NONE,0.0f,0.0f,0.0f,0.0f,color);
|
||||
GXSetFog(GX_FOG_NONE, 0.0f, 0.0f, 0.0f, 0.0f, color);
|
||||
GXSetCullMode(GX_CULL_NONE);
|
||||
GXSetDither(GX_FALSE);
|
||||
GXSetNumIndStages(0);
|
||||
GXSetClipMode(GX_FALSE);
|
||||
setTevSettingNonTextureDirectColor();
|
||||
float right = field_0x8*0.5f;
|
||||
float top = field_0xc*0.5f;
|
||||
float right = field_0x8 * 0.5f;
|
||||
float top = field_0xc * 0.5f;
|
||||
Mtx44 matrix;
|
||||
C_MTXOrtho(matrix,top,-top,-right,right,0.0f,10000.0f);
|
||||
GXSetProjection(matrix,GX_ORTHOGRAPHIC);
|
||||
GXLoadPosMtxImm(g_mDoMtx_identity,GX_PNMTX0);
|
||||
C_MTXOrtho(matrix, top, -top, -right, right, 0.0f, 10000.0f);
|
||||
GXSetProjection(matrix, GX_ORTHOGRAPHIC);
|
||||
GXLoadPosMtxImm(g_mDoMtx_identity, GX_PNMTX0);
|
||||
GXSetCurrentMtx(0);
|
||||
drawBack();
|
||||
}
|
||||
@@ -308,53 +308,55 @@ dMpath_n::dTexObjAggregate_c dMpath_n::m_texObjAgg;
|
||||
* renderingDecoration__18dRenderingFDAmap_cFPCQ211dDrawPath_c10line_class */
|
||||
void dRenderingFDAmap_c::renderingDecoration(dDrawPath_c::line_class const* line) {
|
||||
s32 width = getDecorationLineWidth(line->unk1);
|
||||
if (width<=0) {
|
||||
if (width <= 0) {
|
||||
return;
|
||||
}
|
||||
setTevSettingIntensityTextureToCI();
|
||||
GXClearVtxDesc();
|
||||
GXSetVtxDesc(GX_VA_POS,GX_INDEX16);
|
||||
GXSetVtxDesc(GX_VA_TEX0,GX_DIRECT);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0,GX_VA_POS,GX_POS_XY,GX_F32,0);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0,GX_VA_TEX0,GX_POS_XYZ,GX_F32,0);
|
||||
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
|
||||
GXSetVtxDesc(GX_VA_TEX0, GX_DIRECT);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XY, GX_F32, 0);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_POS_XYZ, GX_F32, 0);
|
||||
GXSetNumTevStages(1);
|
||||
GXLoadTexObj(dMpath_n::m_texObjAgg.mTexObjs[6],GX_TEXMAP0);
|
||||
GXLoadTexObj(dMpath_n::m_texObjAgg.mTexObjs[6], GX_TEXMAP0);
|
||||
u16* unk = line->unk4;
|
||||
s32 unk2 = line->unk2;
|
||||
GXSetLineWidth(width,GX_TO_ONE);
|
||||
GXSetPointSize(width,GX_TO_ONE);
|
||||
GXColor* lineColorPtr = getDecoLineColor(line->unk0&0x3f,line->unk1);
|
||||
GXColor lineColor = *lineColorPtr;
|
||||
GXSetTevColor(GX_TEVREG0,lineColor);
|
||||
lineColor.r = lineColor.r-4;
|
||||
GXSetTevColor(GX_TEVREG1,lineColor);
|
||||
for (int i = 0; i<unk2; unk++,i++) {
|
||||
GXSetLineWidth(width, GX_TO_ONE);
|
||||
GXSetPointSize(width, GX_TO_ONE);
|
||||
GXColor* lineColorPtr = getDecoLineColor(line->unk0 & 0x3f, line->unk1);
|
||||
GXColor lineColor = *lineColorPtr;
|
||||
GXSetTevColor(GX_TEVREG0, lineColor);
|
||||
lineColor.r = lineColor.r - 4;
|
||||
GXSetTevColor(GX_TEVREG1, lineColor);
|
||||
for (int i = 0; i < unk2; unk++, i++) {
|
||||
#ifndef HYRULE_FIELD_SPEEDHACK
|
||||
if(i<unk2-1) {
|
||||
GXSetTevColorIn(GX_TEVSTAGE0,GX_CC_ZERO,GX_CC_ZERO,GX_CC_ZERO,GX_CC_C0);
|
||||
GXSetTevColorOp(GX_TEVSTAGE0,GX_TEV_ADD,GX_TB_ZERO,GX_CS_SCALE_1,GX_TRUE,GX_TEVPREV);
|
||||
GXSetTevAlphaIn(GX_TEVSTAGE0,GX_CA_ZERO,GX_CA_ZERO,GX_CA_ZERO,GX_CA_KONST);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE0,GX_TEV_ADD,GX_TB_ZERO,GX_CS_SCALE_1,GX_TRUE,GX_TEVPREV);
|
||||
GXBegin(GX_LINESTRIP,GX_VTXFMT0,2);
|
||||
if (i < unk2 - 1) {
|
||||
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_C0);
|
||||
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE,
|
||||
GX_TEVPREV);
|
||||
GXBegin(GX_LINESTRIP, GX_VTXFMT0, 2);
|
||||
GXPosition1x16(unk[0]);
|
||||
GXTexCoord2f32(0,0);
|
||||
GXTexCoord2f32(0, 0);
|
||||
GXPosition1x16(unk[1]);
|
||||
GXTexCoord2f32(0,0);
|
||||
GXTexCoord2f32(0, 0);
|
||||
}
|
||||
GXSetTevColorIn(GX_TEVSTAGE0,GX_CC_ZERO,GX_CC_KONST,GX_CC_TEXC,GX_CC_C1);
|
||||
GXSetTevColorOp(GX_TEVSTAGE0,GX_TEV_ADD,GX_TB_ZERO,GX_CS_SCALE_1,GX_TRUE,GX_TEVPREV);
|
||||
GXSetTevAlphaIn(GX_TEVSTAGE0,GX_CA_ZERO,GX_CA_ZERO,GX_CA_ZERO,GX_CA_TEXA);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE0,GX_TEV_ADD,GX_TB_ZERO,GX_CS_SCALE_1,GX_TRUE,GX_TEVPREV);
|
||||
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_KONST, GX_CC_TEXC, GX_CC_C1);
|
||||
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_TEXA);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
|
||||
#endif
|
||||
GXBegin(GX_POINTS,GX_VTXFMT0,1);
|
||||
GXBegin(GX_POINTS, GX_VTXFMT0, 1);
|
||||
GXPosition1x16(unk[0]);
|
||||
GXTexCoord2f32(0,0);
|
||||
GXTexCoord2f32(0, 0);
|
||||
GXEnd();
|
||||
}
|
||||
setTevSettingNonTextureDirectColor();
|
||||
GXClearVtxDesc();
|
||||
GXSetVtxDesc(GX_VA_POS,GX_INDEX16);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0,GX_VA_POS,GX_CLR_RGB,GX_F32,0);
|
||||
GXSetVtxDesc(GX_VA_POS, GX_INDEX16);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_CLR_RGB, GX_F32, 0);
|
||||
}
|
||||
|
||||
/* 8003D68C-8003D6B8 037FCC 002C+00 1/0 6/0 0/0 .text getDecoLineColor__18dRenderingFDAmap_cFii */
|
||||
|
||||
@@ -937,7 +937,7 @@ asm void J2DTextBox::getBlack() const {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J2DPicture::getWhite() const {
|
||||
asm JUtility::TColor J2DPicture::getWhite() const {
|
||||
nofralloc
|
||||
#include "asm/d/menu/d_menu_letter/getWhite__10J2DPictureCFv.s"
|
||||
}
|
||||
@@ -947,7 +947,7 @@ asm void J2DPicture::getWhite() const {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J2DPicture::getBlack() const {
|
||||
asm JUtility::TColor J2DPicture::getBlack() const {
|
||||
nofralloc
|
||||
#include "asm/d/menu/d_menu_letter/getBlack__10J2DPictureCFv.s"
|
||||
}
|
||||
|
||||
@@ -263,7 +263,6 @@ extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
|
||||
extern "C" extern void* __vt__12dDlst_base_c[3];
|
||||
extern "C" extern void* __vt__10CSTControl[4];
|
||||
extern "C" u8 m_cpadInfo__8mDoCPd_c[256];
|
||||
extern "C" extern u8 g_clearColor[4];
|
||||
extern "C" u8 mFader__13mDoGph_gInf_c[4];
|
||||
extern "C" u8 mFrameBufferTimg__13mDoGph_gInf_c[4];
|
||||
extern "C" u8 mFrameBufferTex__13mDoGph_gInf_c[4];
|
||||
|
||||
+578
-145
@@ -6,7 +6,9 @@
|
||||
#include "d/meter/d_meter2_draw.h"
|
||||
#include "JSystem/J2DGraph/J2DAnmLoader.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "d/d_kantera_icon_meter.h"
|
||||
#include "d/meter/d_meter_HIO.h"
|
||||
#include "d/msg/d_msg_object.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
@@ -14,14 +16,6 @@
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct dKantera_icon_c {
|
||||
/* 801AE938 */ dKantera_icon_c();
|
||||
/* 801AEB7C */ void setAlphaRate(f32);
|
||||
/* 801AEBA0 */ void setPos(f32, f32);
|
||||
/* 801AEBF4 */ void setScale(f32, f32);
|
||||
/* 801AEC44 */ void setNowGauge(u16, u16);
|
||||
};
|
||||
|
||||
struct Z2SeMgr {
|
||||
/* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8);
|
||||
/* 802AC50C */ void seStartLevel(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8);
|
||||
@@ -231,57 +225,46 @@ extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
inline bool dComIfGp_checkPlayerStatus0(int param_0, u32 param_1) {
|
||||
return g_dComIfG_gameInfo.play.checkPlayerStatus(param_0, 0, param_1);
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80398258-80398280 0248B8 0028+00 4/4 0/0 0/0 .rodata a_tag$3949 */
|
||||
SECTION_RODATA static u8 const a_tag[40] = {
|
||||
0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x61, 0x74, 0x31, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x61,
|
||||
0x74, 0x32, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x61, 0x74, 0x33, 0x63, 0x6F, 0x6E, 0x74,
|
||||
0x5F, 0x61, 0x74, 0x34, 0x00, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x61, 0x74,
|
||||
static u64 const a_tag[5] = {
|
||||
'cont_at1', 'cont_at2', 'cont_at3', 'cont_at4', 'cont_at',
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80398258, &a_tag);
|
||||
|
||||
/* 80398280-803982A8 0248E0 0028+00 0/1 0/0 0/0 .rodata b_tag$3950 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const b_tag[40] = {
|
||||
0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x62, 0x74, 0x31, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x62,
|
||||
0x74, 0x32, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x62, 0x74, 0x33, 0x63, 0x6F, 0x6E, 0x74,
|
||||
0x5F, 0x62, 0x74, 0x34, 0x00, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x62, 0x74,
|
||||
static u64 const b_tag[5] = {
|
||||
'cont_bt1', 'cont_bt2', 'cont_bt3', 'cont_bt4', 'cont_bt',
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80398280, &b_tag);
|
||||
#pragma pop
|
||||
|
||||
/* 803982A8-803982D0 024908 0028+00 0/1 0/0 0/0 .rodata z_tag$3951 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const z_tag[40] = {
|
||||
0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x7A, 0x74, 0x31, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x7A,
|
||||
0x74, 0x32, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x7A, 0x74, 0x33, 0x63, 0x6F, 0x6E, 0x74,
|
||||
0x5F, 0x7A, 0x74, 0x34, 0x00, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x72, 0x74,
|
||||
static u64 const z_tag[5] = {
|
||||
'cont_zt1', 'cont_zt2', 'cont_zt3', 'cont_zt4', 'cont_rt',
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x803982A8, &z_tag);
|
||||
#pragma pop
|
||||
|
||||
/* 803982D0-803982F8 024930 0028+00 0/1 0/0 0/0 .rodata x_tag$3952 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const x_tag[40] = {
|
||||
0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x78, 0x74, 0x31, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x78,
|
||||
0x74, 0x32, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x78, 0x74, 0x33, 0x63, 0x6F, 0x6E, 0x74,
|
||||
0x5F, 0x78, 0x74, 0x34, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x78, 0x74, 0x35,
|
||||
static u64 const x_tag[5] = {
|
||||
'cont_xt1', 'cont_xt2', 'cont_xt3', 'cont_xt4', 'cont_xt5',
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x803982D0, &x_tag);
|
||||
#pragma pop
|
||||
|
||||
/* 803982F8-80398320 024958 0028+00 0/1 0/0 0/0 .rodata y_tag$3953 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static u8 const y_tag[40] = {
|
||||
0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x79, 0x74, 0x31, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x79,
|
||||
0x74, 0x32, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x79, 0x74, 0x33, 0x63, 0x6F, 0x6E, 0x74,
|
||||
0x5F, 0x79, 0x74, 0x34, 0x63, 0x6F, 0x6E, 0x74, 0x5F, 0x79, 0x74, 0x35,
|
||||
static u64 const y_tag[5] = {
|
||||
'cont_yt1', 'cont_yt2', 'cont_yt3', 'cont_yt4', 'cont_yt5',
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x803982F8, &y_tag);
|
||||
#pragma pop
|
||||
|
||||
/* 803988D0-803988D0 024F30 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
@@ -307,17 +290,9 @@ SECTION_DEAD static char const* const stringBase_803989BF = "";
|
||||
#pragma pop
|
||||
|
||||
/* 803BF328-803BF350 -00001 0028+00 1/1 0/0 0/0 .data bmg_filename$3954 */
|
||||
SECTION_DATA static void* bmg_filename[10] = {
|
||||
(void*)&d_meter_d_meter2_draw__stringBase0,
|
||||
(void*)(((char*)&d_meter_d_meter2_draw__stringBase0) + 0xB),
|
||||
(void*)(((char*)&d_meter_d_meter2_draw__stringBase0) + 0x16),
|
||||
(void*)(((char*)&d_meter_d_meter2_draw__stringBase0) + 0x21),
|
||||
(void*)(((char*)&d_meter_d_meter2_draw__stringBase0) + 0x2C),
|
||||
(void*)(((char*)&d_meter_d_meter2_draw__stringBase0) + 0x37),
|
||||
(void*)(((char*)&d_meter_d_meter2_draw__stringBase0) + 0x42),
|
||||
(void*)(((char*)&d_meter_d_meter2_draw__stringBase0) + 0x4D),
|
||||
(void*)(((char*)&d_meter_d_meter2_draw__stringBase0) + 0x58),
|
||||
(void*)(((char*)&d_meter_d_meter2_draw__stringBase0) + 0x63),
|
||||
SECTION_DATA static char* bmg_filename[10] = {
|
||||
"zel_00.bmg", "zel_01.bmg", "zel_02.bmg", "zel_03.bmg", "zel_04.bmg",
|
||||
"zel_05.bmg", "zel_06.bmg", "zel_07.bmg", "zel_08.bmg", "zel_99.bmg",
|
||||
};
|
||||
|
||||
/* 803BF350-803BF554 01C470 0204+00 1/1 0/0 0/0 .data i_action_num$8471 */
|
||||
@@ -527,6 +502,91 @@ SECTION_SDATA2 static f32 lit_4185 = 20.0f;
|
||||
|
||||
/* 8020FAB4-802102F8 20A3F4 0844+00 0/0 1/1 0/0 .text __ct__13dMeter2Draw_cFP10JKRExpHeap
|
||||
*/
|
||||
#ifdef NONMATCHING
|
||||
dMeter2Draw_c::dMeter2Draw_c(JKRExpHeap* p_heap) {
|
||||
mp_heap = p_heap;
|
||||
JKRHeap* heap = mDoExt_setCurrentHeap(dComIfGp_getMsgExpHeap());
|
||||
|
||||
void* msg_res = JKRGetTypeResource('ROOT', "zel_00.bmg", dComIfGp_getMsgDtArchive(0));
|
||||
dMeter2Info_setMsgResource(msg_res);
|
||||
|
||||
void* stg_msg_res = JKRGetTypeResource('ROOT', bmg_filename[dMsgObject_getGroupID()],
|
||||
dComIfGp_getMsgDtArchive(1));
|
||||
dMeter2Info_setStageMsgResource(stg_msg_res);
|
||||
|
||||
void* msg_unit_res = JKRGetTypeResource('ROOT', "zel_unit.bmg", dComIfGp_getMsgDtArchive(0));
|
||||
dMeter2Info_setMsgUnitResource(msg_unit_res);
|
||||
mDoExt_setCurrentHeap(heap);
|
||||
|
||||
mpScreen = new J2DScreen();
|
||||
mpScreen->setPriority("zelda_game_image.blo", 0x20000, dComIfGp_getMain2DArchive());
|
||||
dPaneClass_showNullPane(mpScreen);
|
||||
mpScreen->search('ju_ring5')->hide();
|
||||
|
||||
field_0x73c = 0.0f;
|
||||
for (int i = 0; i < 2; i++) {
|
||||
mpKanteraMeter[i] = new dKantera_icon_c();
|
||||
}
|
||||
mpKanteraScreen = new J2DScreen();
|
||||
mpKanteraScreen->setPriority("zelda_game_image_kantera.blo", 0x20000,
|
||||
dComIfGp_getMain2DArchive());
|
||||
dPaneClass_showNullPane(mpKanteraScreen);
|
||||
|
||||
mpPikariScreen = new J2DScreen();
|
||||
mpPikariScreen->setPriority("zelda_icon_pikari.blo", 0x20000, dComIfGp_getMain2DArchive());
|
||||
dPaneClass_showNullPane(mpPikariScreen);
|
||||
mpPikariParent = new CPaneMgr(mpPikariScreen, 'pika_n', 0, NULL);
|
||||
field_0x548 = ((J2DPicture*)mpPikariScreen->search('pika00'))->getBlack();
|
||||
field_0x54c = ((J2DPicture*)mpPikariScreen->search('pika00'))->getWhite();
|
||||
OSInitFastCast();
|
||||
void* pikari_bck = JKRGetNameResource("zelda_icon_pikari.bck", dComIfGp_getMain2DArchive());
|
||||
mPikariBck = (J2DAnmTransformKey*)J2DAnmLoaderDataBase::load(pikari_bck);
|
||||
playPikariBckAnimation(1.0f);
|
||||
void* pikari_bpk = JKRGetNameResource("zelda_icon_pikari.bpk", dComIfGp_getMain2DArchive());
|
||||
mPikariBpk = (J2DAnmColorKey*)J2DAnmLoaderDataBase::load(pikari_bpk);
|
||||
mPikariBpk->searchUpdateMaterialID(mpPikariScreen);
|
||||
playPikariBpkAnimation(1.0f);
|
||||
|
||||
mpParent = new CPaneMgr(mpScreen, 'n_all', 2, NULL);
|
||||
for (int i = 0; i < 5; i++) {
|
||||
mpAText[i] = new CPaneMgr(mpScreen, a_tag[i], 0, NULL);
|
||||
((J2DTextBox*)mpAText[i]->getPanePtr())->setString(64, "");
|
||||
((J2DTextBox*)mpAText[i]->getPanePtr())->setFont(mDoExt_getMesgFont());
|
||||
((J2DTextBox*)mpAText[i]->getPanePtr())->setCharSpace(g_drawHIO.mAButtonFontSpacing);
|
||||
|
||||
mpBText[i] = new CPaneMgr(mpScreen, b_tag[i], 0, NULL);
|
||||
((J2DTextBox*)mpBText[i]->getPanePtr())->setString(64, "");
|
||||
((J2DTextBox*)mpBText[i]->getPanePtr())->setFont(mDoExt_getMesgFont());
|
||||
|
||||
mpXYText[i][2] = new CPaneMgr(mpScreen, z_tag[i], 0, NULL);
|
||||
((J2DTextBox*)mpXYText[i][2]->getPanePtr())->setString(64, "");
|
||||
((J2DTextBox*)mpXYText[i][2]->getPanePtr())->setFont(mDoExt_getMesgFont());
|
||||
|
||||
mpXYText[i][0] = new CPaneMgr(mpScreen, x_tag[i], 0, NULL);
|
||||
((J2DTextBox*)mpXYText[i][0]->getPanePtr())->setString(64, "");
|
||||
((J2DTextBox*)mpXYText[i][0]->getPanePtr())->setFont(mDoExt_getMesgFont());
|
||||
|
||||
mpXYText[i][1] = new CPaneMgr(mpScreen, y_tag[i], 0, NULL);
|
||||
((J2DTextBox*)mpXYText[i][1]->getPanePtr())->setString(64, "");
|
||||
((J2DTextBox*)mpXYText[i][1]->getPanePtr())->setFont(mDoExt_getMesgFont());
|
||||
}
|
||||
|
||||
J2DTextBox::TFontSize font_size = {lit_4184, lit_4185};
|
||||
for (int i = 0; i < 5; i++) {
|
||||
((J2DTextBox*)mpAText[i]->getPanePtr())->setFontSize(font_size);
|
||||
((J2DTextBox*)mpBText[i]->getPanePtr())->setFontSize(font_size);
|
||||
((J2DTextBox*)mpXYText[i][2]->getPanePtr())->setFontSize(font_size);
|
||||
((J2DTextBox*)mpXYText[i][0]->getPanePtr())->setFontSize(font_size);
|
||||
((J2DTextBox*)mpXYText[i][1]->getPanePtr())->setFontSize(font_size);
|
||||
}
|
||||
|
||||
init();
|
||||
field_0xa8 = 0;
|
||||
field_0x1e4 = 0;
|
||||
field_0x2fc = 0;
|
||||
field_0x36c = 0;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -535,36 +595,437 @@ asm dMeter2Draw_c::dMeter2Draw_c(JKRExpHeap* param_0) {
|
||||
#include "asm/d/meter/d_meter2_draw/__ct__13dMeter2Draw_cFP10JKRExpHeap.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 802102F8-80210FB0 20AC38 0CB8+00 1/0 0/0 0/0 .text __dt__13dMeter2Draw_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dMeter2Draw_c::~dMeter2Draw_c() {
|
||||
nofralloc
|
||||
#include "asm/d/meter/d_meter2_draw/__dt__13dMeter2Draw_cFv.s"
|
||||
dMeter2Draw_c::~dMeter2Draw_c() {
|
||||
dComIfGp_getMsgDtArchive(0)->removeResource(dMeter2Info_getMsgResource());
|
||||
dComIfGp_getMsgDtArchive(0)->removeResource(dMeter2Info_getMsgUnitResource());
|
||||
dComIfGp_getItemIconArchive()->removeResourceAll();
|
||||
|
||||
delete mpScreen;
|
||||
mpScreen = NULL;
|
||||
|
||||
delete mpKanteraScreen;
|
||||
mpKanteraScreen = NULL;
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
delete mpKanteraMeter[i];
|
||||
mpKanteraMeter[i] = NULL;
|
||||
}
|
||||
|
||||
delete mpParent;
|
||||
mpParent = NULL;
|
||||
|
||||
delete mpPikariScreen;
|
||||
mpPikariScreen = NULL;
|
||||
|
||||
delete mpPikariParent;
|
||||
mpPikariParent = NULL;
|
||||
|
||||
delete mPikariBck;
|
||||
mPikariBck = NULL;
|
||||
|
||||
delete mPikariBpk;
|
||||
mPikariBpk = NULL;
|
||||
|
||||
for (int i = 0; i < 5; i++) {
|
||||
delete mpAText[i];
|
||||
mpAText[i] = NULL;
|
||||
|
||||
delete mpBText[i];
|
||||
mpBText[i] = NULL;
|
||||
|
||||
for (int j = 0; j < 3; j++) {
|
||||
delete mpXYText[i][j];
|
||||
mpXYText[i][j] = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
delete mpLifeParent;
|
||||
mpLifeParent = NULL;
|
||||
|
||||
for (int i = 0; i < 20; i++) {
|
||||
delete mpLifeParts[i];
|
||||
mpLifeParts[i] = NULL;
|
||||
|
||||
delete mpHeartMask[i];
|
||||
mpHeartMask[i] = NULL;
|
||||
|
||||
delete mpHeartBase[i];
|
||||
mpHeartBase[i] = NULL;
|
||||
|
||||
delete mpLifeTexture[i][0];
|
||||
mpLifeTexture[i][0] = NULL;
|
||||
|
||||
delete mpLifeTexture[i][1];
|
||||
mpLifeTexture[i][1] = NULL;
|
||||
}
|
||||
|
||||
delete mpBigHeart;
|
||||
mpBigHeart = NULL;
|
||||
|
||||
delete mpMagicParent;
|
||||
mpMagicParent = NULL;
|
||||
|
||||
delete mpMagicBase;
|
||||
mpMagicBase = NULL;
|
||||
|
||||
delete mpMagicFrameL;
|
||||
mpMagicFrameL = NULL;
|
||||
|
||||
delete mpMagicFrameR;
|
||||
mpMagicFrameR = NULL;
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
delete field_0x53c[i];
|
||||
field_0x53c[i] = NULL;
|
||||
}
|
||||
|
||||
delete mpMagicMeter;
|
||||
mpMagicMeter = NULL;
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
delete mpSIParent[i];
|
||||
mpSIParent[i] = NULL;
|
||||
}
|
||||
|
||||
delete mpLightDropParent;
|
||||
mpLightDropParent = NULL;
|
||||
|
||||
for (int i = 0; i < 16; i++) {
|
||||
for (int j = 0; j < 3; j++) {
|
||||
if (mpSIParts[i][j] != NULL) {
|
||||
delete mpSIParts[i][j];
|
||||
mpSIParts[i][j] = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
delete mpRupeeKeyParent;
|
||||
mpRupeeKeyParent = NULL;
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
delete mpRupeeTexture[i][0];
|
||||
mpRupeeTexture[i][0] = NULL;
|
||||
|
||||
delete mpRupeeTexture[i][1];
|
||||
mpRupeeTexture[i][1] = NULL;
|
||||
}
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
delete mpRupeeParent[i];
|
||||
mpRupeeParent[i] = NULL;
|
||||
}
|
||||
|
||||
for (int i = 0; i < 5; i++) {
|
||||
delete mpKeyTexture[i];
|
||||
mpKeyTexture[i] = NULL;
|
||||
}
|
||||
|
||||
delete mpKeyParent;
|
||||
mpKeyParent = NULL;
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
for (int j = 0; j < 2; j++) {
|
||||
mp_heap->free(mpItemBTex[i][j]);
|
||||
mpItemBTex[i][j] = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
for (int j = 0; j < 2; j++) {
|
||||
for (int k = 0; k < 2; k++) {
|
||||
mp_heap->free(mpItemXYTex[i][j][k]);
|
||||
mpItemXYTex[i][j][k] = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
delete mpItemB;
|
||||
mpItemB = NULL;
|
||||
mpItemBPane = NULL;
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
if (mpItemXY[i] != NULL) {
|
||||
delete mpItemXY[i];
|
||||
mpItemXY[i] = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
delete mpItemR;
|
||||
mpItemR = NULL;
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
mpItemXYPane[i] = NULL;
|
||||
}
|
||||
|
||||
delete mpLightB;
|
||||
mpLightB = NULL;
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
if (mpLightXY[i] != NULL) {
|
||||
delete mpLightXY[i];
|
||||
mpLightXY[i] = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
delete mpBTextA;
|
||||
mpBTextA = NULL;
|
||||
|
||||
delete mpBTextB;
|
||||
mpBTextB = NULL;
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
if (mpBTextXY[i] != NULL) {
|
||||
delete mpBTextXY[i];
|
||||
mpBTextXY[i] = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
delete mpTextA;
|
||||
mpTextA = NULL;
|
||||
|
||||
delete mpTextB;
|
||||
mpTextB = NULL;
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
delete mpTextXY[i];
|
||||
mpTextXY[i] = NULL;
|
||||
}
|
||||
|
||||
delete mpTextI;
|
||||
mpTextI = NULL;
|
||||
|
||||
delete mpTextM;
|
||||
mpTextM = NULL;
|
||||
|
||||
for (int i = 0; i < 5; i++) {
|
||||
if (mpJujiI[i] != NULL) {
|
||||
delete mpJujiI[i];
|
||||
mpJujiI[i] = NULL;
|
||||
}
|
||||
|
||||
if (mpJujiM[i] != NULL) {
|
||||
delete mpJujiM[i];
|
||||
mpJujiM[i] = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
delete mpButtonParent;
|
||||
mpButtonParent = NULL;
|
||||
|
||||
delete mpButtonA;
|
||||
mpButtonA = NULL;
|
||||
|
||||
delete mpButtonB;
|
||||
mpButtonB = NULL;
|
||||
|
||||
delete mpButtonMidona;
|
||||
mpButtonMidona = NULL;
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
delete mpButtonXY[i];
|
||||
mpButtonXY[i] = NULL;
|
||||
}
|
||||
|
||||
if (mpUzu != NULL) {
|
||||
delete mpUzu;
|
||||
mpUzu = NULL;
|
||||
}
|
||||
|
||||
delete mpButtonCrossParent;
|
||||
mpButtonCrossParent = NULL;
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
for (int j = 0; j < 3; j++) {
|
||||
if (mpItemNumTex[i][j] != NULL) {
|
||||
delete mpItemNumTex[i][j];
|
||||
mpItemNumTex[i][j] = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
if (field_0x9c[i] != NULL) {
|
||||
delete field_0x9c[i];
|
||||
field_0x9c[i] = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80210FB0-8021135C 20B8F0 03AC+00 1/1 0/0 0/0 .text init__13dMeter2Draw_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMeter2Draw_c::init() {
|
||||
nofralloc
|
||||
#include "asm/d/meter/d_meter2_draw/init__13dMeter2Draw_cFv.s"
|
||||
void dMeter2Draw_c::init() {
|
||||
f32 tmp_0 = FLOAT_LABEL(lit_4182);
|
||||
field_0x608 = tmp_0;
|
||||
field_0x60c = tmp_0;
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
field_0x620[i] = tmp_0;
|
||||
field_0x610[i] = tmp_0;
|
||||
}
|
||||
|
||||
f32 tmp_0_1 = FLOAT_LABEL(lit_4182);
|
||||
field_0x61c = tmp_0_1;
|
||||
for (int i = 0; i < 16; i++) {
|
||||
field_0x62c[i] = tmp_0_1;
|
||||
field_0x66c[i] = tmp_0_1;
|
||||
}
|
||||
|
||||
field_0x759 = 0;
|
||||
field_0x75a = 0;
|
||||
for (int i = 0; i < 3; i++) {
|
||||
field_0x75c[i] = 0;
|
||||
}
|
||||
|
||||
field_0x75f = 0;
|
||||
field_0x756 = -1;
|
||||
|
||||
field_0x760 = 0;
|
||||
|
||||
int j = 0;
|
||||
f32 tmp_0_3 = FLOAT_LABEL(lit_4182);
|
||||
for (; j < 3; j++) {
|
||||
field_0x6ac[j] = tmp_0_3;
|
||||
field_0x6b8[j] = tmp_0_3;
|
||||
field_0x6c4[j] = tmp_0_3;
|
||||
field_0x6d0[j] = tmp_0_3;
|
||||
}
|
||||
|
||||
f32 tmp_0_4 = FLOAT_LABEL(lit_4182);
|
||||
field_0x6dc = tmp_0_4;
|
||||
field_0x6e0 = tmp_0_4;
|
||||
field_0x6e4 = tmp_0_4;
|
||||
field_0x6e8 = tmp_0_4;
|
||||
field_0x6ec = tmp_0_4;
|
||||
field_0x6f0 = tmp_0_4;
|
||||
mHUDScale = g_drawHIO.mHUDScale;
|
||||
mHUDAlpha = g_drawHIO.mHUDAlpha;
|
||||
mButtonsPosX = tmp_0_4;
|
||||
mButtonsPosY = tmp_0_4;
|
||||
mButtonsScale = lit_4183;
|
||||
field_0x78c = g_drawHIO.mButtonDisplayBackScale;
|
||||
field_0x790 = tmp_0_4;
|
||||
mLifeGaugeHeartAlpha = g_drawHIO.mLifeGaugeHeartAlpha;
|
||||
mLifeGaugeBaseAlpha = g_drawHIO.mLifeGaugeBaseAlpha;
|
||||
mHeartAlpha = g_drawHIO.mHeartAlpha;
|
||||
mLargeHeartAlpha = g_drawHIO.mLargeHeartAlpha;
|
||||
field_0x7a4 = tmp_0_4;
|
||||
mMagicMeterAlpha = g_drawHIO.mMagicMeterAlpha;
|
||||
mMagicMeterFrameAlpha = g_drawHIO.mMagicMeterFrameAlpha;
|
||||
field_0x7b0 = tmp_0_4;
|
||||
mLanternMeterAlpha = g_drawHIO.mLanternMeterAlpha;
|
||||
mLanternMeterFrameAlpha = g_drawHIO.mLanternMeterFrameAlpha;
|
||||
field_0x7bc = tmp_0_4;
|
||||
mOxygenMeterAlpha = g_drawHIO.mOxygenMeterAlpha;
|
||||
mOxygenMeterFrameAlpha = g_drawHIO.mOxygenMeterFrameAlpha;
|
||||
field_0x7c8 = tmp_0_4;
|
||||
field_0x861 = 0;
|
||||
field_0x860 = 0;
|
||||
field_0x7cc = g_drawHIO.mHUDAlpha;
|
||||
field_0x7d0 = g_drawHIO.mRupeeKeyAlpha;
|
||||
mRupeeAlpha = g_drawHIO.mRupeeAlpha;
|
||||
mRupeeFrameAlpha = g_drawHIO.mRupeeFrameAlpha;
|
||||
mRupeeCountAlpha = g_drawHIO.mRupeeCountAlpha;
|
||||
field_0x7e0 = g_drawHIO.mHUDAlpha;
|
||||
field_0x7e4 = g_drawHIO.mRupeeKeyAlpha;
|
||||
mKeyAlpha = g_drawHIO.mKeyAlpha;
|
||||
mKeyNumAlpha = g_drawHIO.mKeyNumAlpha;
|
||||
field_0x7f0 = g_drawHIO.mHUDAlpha;
|
||||
mMainHUDButtonsAlpha = g_drawHIO.mMainHUDButtonsAlpha;
|
||||
mButtonDisplayBackAlpha = g_drawHIO.mButtonDisplayBackAlpha;
|
||||
mAButtonAlpha = g_drawHIO.mAButtonAlpha;
|
||||
mBButtonAlpha = g_drawHIO.mBButtonAlpha;
|
||||
mXButtonAlpha = g_drawHIO.mXButtonAlpha;
|
||||
mYButtonAlpha = g_drawHIO.mYButtonAlpha;
|
||||
field_0x80c = g_drawHIO.field_0x168;
|
||||
field_0x810 = g_drawHIO.mZButtonAlpha;
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
mBItemBaseAlpha[i] = g_drawHIO.mBItemBaseAlpha[i];
|
||||
mXButtonItemBaseAlpha[i] = g_drawHIO.mXButtonItemBaseAlpha[i];
|
||||
mYButtonItemBaseAlpha[i] = g_drawHIO.mYButtonItemBaseAlpha[i];
|
||||
field_0x82c[i] = g_drawHIO.field_0x298[i];
|
||||
}
|
||||
|
||||
mZButtonItemBaseAlpha = g_drawHIO.mZButtonItemBaseAlpha;
|
||||
mButtonBaseAlpha = g_drawHIO.mButtonBaseAlpha;
|
||||
mAButtonFontSpacing = g_drawHIO.mAButtonFontSpacing;
|
||||
mDPadButtonAlpha = g_drawHIO.mDPadButtonAlpha;
|
||||
mDPadButtonITEMAlpha = g_drawHIO.mDPadButtonITEMAlpha;
|
||||
mDPadButtonMAPAlpha = g_drawHIO.mDPadButtonMAPAlpha;
|
||||
field_0x84c = g_drawHIO.mAButtonFontColor.r;
|
||||
field_0x84d = g_drawHIO.mAButtonFontColor.g;
|
||||
field_0x84e = g_drawHIO.mAButtonFontColor.b;
|
||||
field_0x84f = g_drawHIO.mAButtonFontColor.a;
|
||||
field_0x850 = g_drawHIO.mBButtonFontColor.r;
|
||||
field_0x851 = g_drawHIO.mBButtonFontColor.g;
|
||||
field_0x852 = g_drawHIO.mBButtonFontColor.b;
|
||||
field_0x853 = g_drawHIO.mBButtonFontColor.a;
|
||||
field_0x854 = g_drawHIO.field_0x2f0.r;
|
||||
field_0x855 = g_drawHIO.field_0x2f0.g;
|
||||
field_0x856 = g_drawHIO.field_0x2f0.b;
|
||||
field_0x857 = g_drawHIO.field_0x2f0.a;
|
||||
field_0x858 = g_drawHIO.mZButtonFontColor.r;
|
||||
field_0x859 = g_drawHIO.mZButtonFontColor.g;
|
||||
field_0x85a = g_drawHIO.mZButtonFontColor.b;
|
||||
field_0x85b = g_drawHIO.mZButtonFontColor.a;
|
||||
field_0x85c = g_drawHIO.mXYButtonFontColor.r;
|
||||
field_0x85d = g_drawHIO.mXYButtonFontColor.g;
|
||||
field_0x85e = g_drawHIO.mXYButtonFontColor.b;
|
||||
field_0x85f = g_drawHIO.mXYButtonFontColor.a;
|
||||
|
||||
setItemParamX(0);
|
||||
setItemParamY(0);
|
||||
setItemParamZ(0);
|
||||
setItemParamB(0);
|
||||
initLife();
|
||||
initMagic();
|
||||
initLightDrop();
|
||||
initRupeeKey();
|
||||
initButton();
|
||||
initButtonCross();
|
||||
field_0x772 = 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8021135C-8021151C 20BC9C 01C0+00 0/0 1/1 0/0 .text exec__13dMeter2Draw_cFUl */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMeter2Draw_c::exec(u32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/meter/d_meter2_draw/exec__13dMeter2Draw_cFUl.s"
|
||||
void dMeter2Draw_c::exec(u32 param_0) {
|
||||
if (mHUDScale != g_drawHIO.mHUDScale) {
|
||||
mHUDScale = g_drawHIO.mHUDScale;
|
||||
mpParent->scale(g_drawHIO.mHUDScale, g_drawHIO.mHUDScale);
|
||||
}
|
||||
|
||||
if (mHUDAlpha != g_drawHIO.mHUDAlpha) {
|
||||
mHUDAlpha = g_drawHIO.mHUDAlpha;
|
||||
mpParent->setAlphaRate(g_drawHIO.mHUDAlpha);
|
||||
}
|
||||
|
||||
if (param_0 & 0x1000000) {
|
||||
if (mButtonsPosX != g_drawHIO.mRingHUDButtonsPosX ||
|
||||
mButtonsPosY != g_drawHIO.mRingHUDButtonsPosY) {
|
||||
mButtonsPosX = g_drawHIO.mRingHUDButtonsPosX;
|
||||
mButtonsPosY = g_drawHIO.mRingHUDButtonsPosY;
|
||||
mpButtonParent->paneTrans(g_drawHIO.mRingHUDButtonsPosX, g_drawHIO.mRingHUDButtonsPosY);
|
||||
}
|
||||
|
||||
if (mButtonsScale != g_drawHIO.mRingHUDButtonsScale) {
|
||||
mButtonsScale = g_drawHIO.mRingHUDButtonsScale;
|
||||
mpButtonParent->scale(g_drawHIO.mRingHUDButtonsScale, g_drawHIO.mRingHUDButtonsScale);
|
||||
}
|
||||
} else {
|
||||
if (mButtonsPosX != g_drawHIO.mMainHUDButtonsPosX ||
|
||||
mButtonsPosY != g_drawHIO.mMainHUDButtonsPosY) {
|
||||
mButtonsPosX = g_drawHIO.mMainHUDButtonsPosX;
|
||||
mButtonsPosY = g_drawHIO.mMainHUDButtonsPosY;
|
||||
mpButtonParent->paneTrans(g_drawHIO.mMainHUDButtonsPosX, g_drawHIO.mMainHUDButtonsPosY);
|
||||
}
|
||||
|
||||
if (mButtonsScale != g_drawHIO.mMainHUDButtonsScale) {
|
||||
mButtonsScale = g_drawHIO.mMainHUDButtonsScale;
|
||||
mpButtonParent->scale(g_drawHIO.mMainHUDButtonsScale, g_drawHIO.mMainHUDButtonsScale);
|
||||
}
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80454890-80454894 002E90 0004+00 1/1 0/0 0/0 .sdata2 @4921 */
|
||||
@@ -704,6 +1165,7 @@ SECTION_DEAD static char const* const stringBase_80398A0A = "zelda_game_image_sa
|
||||
#pragma pop
|
||||
|
||||
/* 80211E64-80212190 20C7A4 032C+00 1/1 0/0 0/0 .text initMagic__13dMeter2Draw_cFv */
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
void dMeter2Draw_c::initMagic() {
|
||||
field_0x550 = 0.0f;
|
||||
@@ -714,21 +1176,22 @@ void dMeter2Draw_c::initMagic() {
|
||||
mpMagicFrameL = new CPaneMgr(mpKanteraScreen, 'm_w_l_n', 2, NULL);
|
||||
mpMagicFrameR = new CPaneMgr(mpKanteraScreen, 'm_w_r_n', 2, NULL);
|
||||
mpMagicMeter = new CPaneMgr(mpKanteraScreen, 'mm_00', 0, NULL);
|
||||
OSInitFastCast();
|
||||
|
||||
void* res = JKRFileLoader::getGlbResource("zelda_game_image_sanso_10percent.bpk",
|
||||
dComIfGp_getMain2DArchive());
|
||||
field_0x53c = (J2DAnmColorKey*)J2DAnmLoaderDataBase::load(res);
|
||||
field_0x53c->searchUpdateMaterialID(mpKanteraScreen);
|
||||
field_0x53c[0] = (J2DAnmColorKey*)J2DAnmLoaderDataBase::load(res);
|
||||
field_0x53c[0]->searchUpdateMaterialID(mpKanteraScreen);
|
||||
|
||||
res = JKRFileLoader::getGlbResource("zelda_game_image_sanso_25percent.bpk",
|
||||
dComIfGp_getMain2DArchive());
|
||||
field_0x540 = (J2DAnmColorKey*)J2DAnmLoaderDataBase::load(res);
|
||||
field_0x540->searchUpdateMaterialID(mpKanteraScreen);
|
||||
field_0x53c[1] = (J2DAnmColorKey*)J2DAnmLoaderDataBase::load(res);
|
||||
field_0x53c[1]->searchUpdateMaterialID(mpKanteraScreen);
|
||||
|
||||
res = JKRFileLoader::getGlbResource("zelda_game_image_sanso_50percent.bpk",
|
||||
dComIfGp_getMain2DArchive());
|
||||
field_0x544 = (J2DAnmColorKey*)J2DAnmLoaderDataBase::load(res);
|
||||
field_0x544->searchUpdateMaterialID(mpKanteraScreen);
|
||||
field_0x53c[2] = (J2DAnmColorKey*)J2DAnmLoaderDataBase::load(res);
|
||||
field_0x53c[2]->searchUpdateMaterialID(mpKanteraScreen);
|
||||
|
||||
field_0x558 = 0.0f;
|
||||
mpMagicParent->setAlphaRate(0.0f);
|
||||
@@ -751,10 +1214,9 @@ void dMeter2Draw_c::initMagic() {
|
||||
g_drawHIO.mMagicMeterPosY + offsetY);
|
||||
setAlphaMagicChange(true);
|
||||
|
||||
u16 oil = dComIfGs_getOil();
|
||||
u16 max_oil = dComIfGs_getMaxOil();
|
||||
drawKantera(max_oil, oil, g_drawHIO.mLanternMeterPosX + offsetX,
|
||||
g_drawHIO.mLanternMeterPosY + (g_drawHIO.mNoMagicPosY + offsetY));
|
||||
drawKantera((u16)dComIfGs_getMaxOil(), (u16)dComIfGs_getOil(),
|
||||
g_drawHIO.mLanternMeterPosX + offsetX,
|
||||
g_drawHIO.mNoMagicPosY + (g_drawHIO.mLanternMeterPosY + offsetY));
|
||||
setAlphaKanteraChange(true);
|
||||
}
|
||||
#else
|
||||
@@ -908,35 +1370,28 @@ asm void dMeter2Draw_c::initButtonCross() {
|
||||
#pragma pop
|
||||
|
||||
/* 80213CEC-80213D6C 20E62C 0080+00 3/3 0/0 0/0 .text playPikariBckAnimation__13dMeter2Draw_cFf */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMeter2Draw_c::playPikariBckAnimation(f32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/meter/d_meter2_draw/playPikariBckAnimation__13dMeter2Draw_cFf.s"
|
||||
void dMeter2Draw_c::playPikariBckAnimation(f32 frame) {
|
||||
mpPikariParent->getPanePtr()->setAnimation(mPikariBck);
|
||||
mPikariBck->setFrame(frame);
|
||||
mpPikariParent->getPanePtr()->animationTransform();
|
||||
mpPikariParent->getPanePtr()->setAnimation((J2DAnmTransformKey*)NULL);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80213D6C-80213E3C 20E6AC 00D0+00 1/1 0/0 0/0 .text
|
||||
* setPikariBpkAnimation__13dMeter2Draw_cFP11J2DAnmColor */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMeter2Draw_c::setPikariBpkAnimation(J2DAnmColor* param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/meter/d_meter2_draw/setPikariBpkAnimation__13dMeter2Draw_cFP11J2DAnmColor.s"
|
||||
void dMeter2Draw_c::setPikariBpkAnimation(J2DAnmColor* p_anmcolor) {
|
||||
mpPikariScreen->search('pika00')->setAnimation(p_anmcolor);
|
||||
mpPikariScreen->search('moya00')->setAnimation(p_anmcolor);
|
||||
mpPikariScreen->search('moyabs')->setAnimation(p_anmcolor);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80213E3C-80213E94 20E77C 0058+00 3/3 0/0 0/0 .text playPikariBpkAnimation__13dMeter2Draw_cFf */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMeter2Draw_c::playPikariBpkAnimation(f32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/meter/d_meter2_draw/playPikariBpkAnimation__13dMeter2Draw_cFf.s"
|
||||
void dMeter2Draw_c::playPikariBpkAnimation(f32 frame) {
|
||||
setPikariBpkAnimation(mPikariBpk);
|
||||
mPikariBpk->setFrame(frame);
|
||||
mpPikariScreen->animation();
|
||||
setPikariBpkAnimation(NULL);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80213E94-80213FF0 20E7D4 015C+00 1/1 0/0 0/0 .text
|
||||
* playOxygenBpkAnimation__13dMeter2Draw_cFP11J2DAnmColor */
|
||||
@@ -1414,14 +1869,12 @@ asm void dMeter2Draw_c::drawButtonC(u8 param_0, bool param_1) {
|
||||
#pragma pop
|
||||
|
||||
/* 802179C0-80217A10 212300 0050+00 1/1 1/1 0/0 .text drawButtonS__13dMeter2Draw_cFUc */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMeter2Draw_c::drawButtonS(u8 param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/meter/d_meter2_draw/drawButtonS__13dMeter2Draw_cFUc.s"
|
||||
void dMeter2Draw_c::drawButtonS(u8 param_0) {
|
||||
getActionString(param_0, 1, &field_0x767);
|
||||
if (param_0 != 0) {
|
||||
field_0x767 = 7;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80217A10-80217AB4 212350 00A4+00 0/0 1/1 0/0 .text drawButtonBin__13dMeter2Draw_cFUc
|
||||
*/
|
||||
@@ -1671,14 +2124,10 @@ asm void dMeter2Draw_c::setButtonIconAlpha(int param_0, u8 param_1, u32 param_2,
|
||||
|
||||
/* 8021A29C-8021A2F4 214BDC 0058+00 1/1 0/0 0/0 .text getNumberTexture__13dMeter2Draw_cFi
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMeter2Draw_c::getNumberTexture(int param_0) {
|
||||
nofralloc
|
||||
#include "asm/d/meter/d_meter2_draw/getNumberTexture__13dMeter2Draw_cFi.s"
|
||||
ResTIMG* dMeter2Draw_c::getNumberTexture(int i) {
|
||||
return (ResTIMG*)dComIfGp_getMain2DArchive()->getResource('TIMG',
|
||||
dMeter2Info_getNumberTextureName(i));
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80430158-80430178 05CE78 0020+00 1/1 0/0 0/0 .bss i_text_buf$8454 */
|
||||
@@ -1795,14 +2244,9 @@ asm void dMeter2Draw_c::drawKanteraMeter(u8 param_0, f32 param_1) {
|
||||
|
||||
/* 8021B0C8-8021B104 215A08 003C+00 0/0 3/3 0/0 .text isButtonVisible__13dMeter2Draw_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMeter2Draw_c::isButtonVisible() {
|
||||
nofralloc
|
||||
#include "asm/d/meter/d_meter2_draw/isButtonVisible__13dMeter2Draw_cFv.s"
|
||||
u8 dMeter2Draw_c::isButtonVisible() {
|
||||
return (mpButtonParent->getAlphaRate() == FLOAT_LABEL(lit_4182)) ^ 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804548E8-804548EC 002EE8 0004+00 2/2 0/0 0/0 .sdata2 @8992 */
|
||||
@@ -1986,14 +2430,13 @@ asm void dMeter2Draw_c::setItemParamB(u8 param_0) {
|
||||
|
||||
/* 8021BB6C-8021BBB4 2164AC 0048+00 1/1 0/0 0/0 .text getFishingType__13dMeter2Draw_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMeter2Draw_c::getFishingType() {
|
||||
nofralloc
|
||||
#include "asm/d/meter/d_meter2_draw/getFishingType__13dMeter2Draw_cFv.s"
|
||||
bool dMeter2Draw_c::getFishingType() {
|
||||
if (dMeter2Info_isGameStatus(1) && getCanoeFishing()) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803988D0-803988D0 024F30 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
@@ -2010,14 +2453,14 @@ SECTION_DEAD static char const* const pad_80398A77 = "";
|
||||
|
||||
/* 8021BBB4-8021BC24 2164F4 0070+00 2/2 1/1 0/0 .text getCanoeFishing__13dMeter2Draw_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMeter2Draw_c::getCanoeFishing() {
|
||||
nofralloc
|
||||
#include "asm/d/meter/d_meter2_draw/getCanoeFishing__13dMeter2Draw_cFv.s"
|
||||
bool dMeter2Draw_c::getCanoeFishing() {
|
||||
if (!strcmp(dComIfGp_getStartStageName(), "F_SP127") &&
|
||||
g_dComIfG_gameInfo.play.mPlayer[0]->checkCanoeRide()) {
|
||||
return TRUE;
|
||||
} else {
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8021BC24-8021BC54 216564 0030+00 0/0 1/1 0/0 .text getCameraSubject__13dMeter2Draw_cFv
|
||||
*/
|
||||
@@ -2043,14 +2486,9 @@ asm void dMeter2Draw_c::getItemSubject() {
|
||||
|
||||
/* 8021BCAC-8021BCC0 2165EC 0014+00 0/0 1/1 0/0 .text getPlayerSubject__13dMeter2Draw_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMeter2Draw_c::getPlayerSubject() {
|
||||
nofralloc
|
||||
#include "asm/d/meter/d_meter2_draw/getPlayerSubject__13dMeter2Draw_cFv.s"
|
||||
bool dMeter2Draw_c::getPlayerSubject() {
|
||||
return dComIfGp_checkPlayerStatus0(0, 0x8000000);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8021BCC0-8021BDD0 216600 0110+00 2/2 2/2 0/0 .text isBButtonShow__13dMeter2Draw_cFb */
|
||||
#pragma push
|
||||
@@ -2064,14 +2502,9 @@ asm void dMeter2Draw_c::isBButtonShow(bool param_0) {
|
||||
|
||||
/* 8021BDD0-8021BDDC 216710 000C+00 0/0 1/1 0/0 .text getButtonTimer__13dMeter2Draw_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMeter2Draw_c::getButtonTimer() {
|
||||
nofralloc
|
||||
#include "asm/d/meter/d_meter2_draw/getButtonTimer__13dMeter2Draw_cFv.s"
|
||||
s16 dMeter2Draw_c::getButtonTimer() {
|
||||
return mpButtonParent->getAlphaTimer();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803988B8-803988D0 024F18 0018+00 0/0 0/0 0/0 .rodata tag$7759 */
|
||||
|
||||
@@ -1011,38 +1011,38 @@ dMeter_drawHIO_c::dMeter_drawHIO_c() {
|
||||
mBItemBasePosY[i] = 0.0f;
|
||||
}
|
||||
|
||||
mBItemBaseAlpha = 0.5f;
|
||||
field_0x23c = 0.5f;
|
||||
mBItemBaseAlpha[0] = 0.5f;
|
||||
mBItemBaseAlpha[1] = 0.5f;
|
||||
|
||||
mXButtonItemBaseScale = 1.5f;
|
||||
mXButtonItemBasePosX = 14.0f;
|
||||
mXButtonItemBasePosY = -12.0f;
|
||||
mXButtonItemBaseAlpha = 0.5f;
|
||||
mXButtonItemBaseAlpha[0] = 0.5f;
|
||||
|
||||
mXButtonItemBaseNoItemScale = 1.5f;
|
||||
mXButtonItemBaseNoItemPosX = 0.0f;
|
||||
mXButtonItemBaseNoItemPosY = 0.0f;
|
||||
mXButtonItemBaseNoItemAlpha = 1.0f;
|
||||
mXButtonItemBaseAlpha[1] = 1.0f;
|
||||
|
||||
mYButtonItemBaseScale = 1.5f;
|
||||
mYButtonItemBasePosX = -15.0f;
|
||||
mYButtonItemBasePosY = -12.0f;
|
||||
mYButtonItemBaseAlpha = 0.5f;
|
||||
mYButtonItemBaseAlpha[0] = 0.5f;
|
||||
|
||||
mYButtonItemBaseNoItemScale = 1.5f;
|
||||
mYButtonItemBaseNoItemPosX = 0.0f;
|
||||
mYButtonItemBaseNoItemPosY = 0.0f;
|
||||
mYButtonItemBaseNoItemAlpha = 0.5f;
|
||||
mYButtonItemBaseAlpha[1] = 0.5f;
|
||||
|
||||
field_0x280 = 1.5f;
|
||||
field_0x288 = 0.0f;
|
||||
field_0x290 = 6.0f;
|
||||
field_0x298 = 0.5f;
|
||||
field_0x298[0] = 0.5f;
|
||||
|
||||
field_0x284 = 1.0f;
|
||||
field_0x28c = 0.0f;
|
||||
field_0x294 = 4.0f;
|
||||
field_0x29c = 1.0f;
|
||||
field_0x298[1] = 1.0f;
|
||||
|
||||
mZButtonItemBaseScale = 1.0f;
|
||||
mZButtonItemBasePosX = 0.0f;
|
||||
|
||||
@@ -447,7 +447,7 @@ extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
|
||||
static u8 s_groupID[2 + 6 /* padding */];
|
||||
|
||||
/* 80232A3C-80232A44 -00001 0008+00 0/0 0/0 0/0 .text dMsgObject_getGroupID__Fv */
|
||||
s32 dMsgObject_getGroupID() {
|
||||
s16 dMsgObject_getGroupID() {
|
||||
return (s32) * (s16*)(&s_groupID);
|
||||
}
|
||||
|
||||
@@ -1802,7 +1802,7 @@ asm void dMsgObject_c::setProcessID(unsigned int param_0) {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dMsgObject_c::getActor() {
|
||||
asm fopAc_ac_c* dMsgObject_c::getActor() {
|
||||
nofralloc
|
||||
#include "asm/d/msg/d_msg_object/getActor__12dMsgObject_cFv.s"
|
||||
}
|
||||
|
||||
@@ -202,7 +202,7 @@ SECTION_SDATA2 static f32 lit_3721[1 + 1 /* padding */] = {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void CPaneMgrAlpha::getAlphaRate() {
|
||||
asm f32 CPaneMgrAlpha::getAlphaRate() {
|
||||
nofralloc
|
||||
#include "asm/d/pane/d_pane_class_alpha/getAlphaRate__13CPaneMgrAlphaFv.s"
|
||||
}
|
||||
|
||||
@@ -1906,11 +1906,11 @@ SECTION_SDATA2 static u32 lit_5199 = 0xFFFFFFFF;
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void dPa_control_c::set(u8 param_0, u16 param_1, cXyz const* param_2,
|
||||
dKy_tevstr_c const* param_3, csXyz const* param_4, cXyz const* param_5,
|
||||
u8 param_6, dPa_levelEcallBack* param_7, s8 param_8,
|
||||
_GXColor const* param_9, _GXColor const* param_10, cXyz const* param_11,
|
||||
f32 param_12) {
|
||||
asm u32 dPa_control_c::set(u8 param_0, u16 param_1, cXyz const* param_2,
|
||||
dKy_tevstr_c const* param_3, csXyz const* param_4, cXyz const* param_5,
|
||||
u8 param_6, dPa_levelEcallBack* param_7, s8 param_8,
|
||||
_GXColor const* param_9, _GXColor const* param_10, cXyz const* param_11,
|
||||
f32 param_12) {
|
||||
nofralloc
|
||||
#include "asm/d/particle/d_particle/func_8004CA90.s"
|
||||
}
|
||||
|
||||
@@ -721,7 +721,7 @@ asm void mDoExt_brkAnm::entry(J3DMaterialTable* param_0, f32 param_1) {
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803A3020-803A30C0 000140 0085+1B 1/1 0/0 0/0 .data l_invisibleMat$7041 */
|
||||
SECTION_DATA static u8 l_invisibleMat[133 + 27 /* padding */] = {
|
||||
SECTION_DATA static u8 l_invisibleMat[133 + 27 /* padding */] ALIGN_DECL(32) = {
|
||||
0x10,
|
||||
0x00,
|
||||
0x00,
|
||||
@@ -2075,7 +2075,8 @@ asm mDoExt_invJntPacket::mDoExt_invJntPacket() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DPacket::~J3DPacket() {
|
||||
// asm J3DPacket::~J3DPacket() {
|
||||
extern "C" asm void __dt__9J3DPacketFv() {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_ext/__dt__9J3DPacketFv.s"
|
||||
}
|
||||
@@ -3172,7 +3173,7 @@ static asm void mDoExt_initFont0() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoExt_getMesgFont() {
|
||||
asm JUTFont* mDoExt_getMesgFont() {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_ext/mDoExt_getMesgFont__Fv.s"
|
||||
}
|
||||
@@ -3277,7 +3278,7 @@ asm void mDoExt_removeSubFont() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoExt_J3DModel__create(J3DModelData* param_0, u32 param_1, u32 param_2) {
|
||||
asm J3DModel* mDoExt_J3DModel__create(J3DModelData* param_0, u32 param_1, u32 param_2) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_ext/mDoExt_J3DModel__create__FP12J3DModelDataUlUl.s"
|
||||
}
|
||||
|
||||
+271
-205
@@ -4,93 +4,24 @@
|
||||
//
|
||||
|
||||
#include "m_Do/m_Do_graphic.h"
|
||||
#include "JSystem/JFramework/JFWSystem.h"
|
||||
#include "SSystem/SComponent/c_lib.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "f_ap/f_ap_game.h"
|
||||
#include "m_Do/m_Do_controller_pad.h"
|
||||
#include "m_Do/m_Do_machine.h"
|
||||
#include "m_Do/m_Do_mtx.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct view_port_class {};
|
||||
|
||||
struct view_class {};
|
||||
|
||||
struct mDoMtx_stack_c {
|
||||
static u8 now[48];
|
||||
};
|
||||
|
||||
struct mDoMch_render_c {
|
||||
static void* mRenderModeObj[1 + 1 /* padding */];
|
||||
};
|
||||
|
||||
struct daPy_py_c {
|
||||
/* 8000B1E4 */ s32 getAtnActorID() const;
|
||||
};
|
||||
|
||||
struct JPADrawInfo {};
|
||||
|
||||
struct dPa_control_c {
|
||||
/* 8004C134 */ void calcMenu();
|
||||
/* 8004C188 */ void draw(JPADrawInfo*, u8);
|
||||
};
|
||||
|
||||
struct dMenu_Collect3D_c {
|
||||
/* 801B75E8 */ void setupItem3D(f32 (*)[4]);
|
||||
};
|
||||
|
||||
struct dDlst_shadowControl_c {
|
||||
/* 800557C8 */ void imageDraw(f32 (*)[4]);
|
||||
/* 80055A14 */ void draw(f32 (*)[4]);
|
||||
};
|
||||
|
||||
struct J3DDrawBuffer {};
|
||||
|
||||
struct dDlst_base_c {};
|
||||
|
||||
struct dDlst_list_c {
|
||||
/* 80056390 */ void init();
|
||||
/* 80056538 */ void reset();
|
||||
/* 800566D4 */ void drawOpaDrawList(J3DDrawBuffer*);
|
||||
/* 80056710 */ void drawXluDrawList(J3DDrawBuffer*);
|
||||
/* 8005674C */ void drawOpaListItem3d();
|
||||
/* 80056770 */ void drawXluListItem3d();
|
||||
/* 800567C4 */ void draw(dDlst_base_c**, dDlst_base_c**);
|
||||
/* 80056900 */ void calcWipe();
|
||||
};
|
||||
|
||||
struct dAttention_c {
|
||||
/* 800737E4 */ void LockonTruth();
|
||||
};
|
||||
|
||||
struct cXyz {
|
||||
/* 80009184 */ ~cXyz();
|
||||
|
||||
static f32 Zero[3];
|
||||
};
|
||||
|
||||
struct JUTGamePad {
|
||||
static u8 mPadStatus[48];
|
||||
};
|
||||
|
||||
struct JUTDbPrint {
|
||||
static u8 sDebugPrint[4 + 4 /* padding */];
|
||||
};
|
||||
|
||||
struct JMath {
|
||||
static u8 sincosTable_[65536];
|
||||
};
|
||||
|
||||
struct JKRSolidHeap {};
|
||||
|
||||
struct JFWSystem {
|
||||
static u8 systemConsole[4];
|
||||
};
|
||||
|
||||
struct J3DSys {
|
||||
/* 803100BC */ void drawInit();
|
||||
/* 8031073C */ void reinitGX();
|
||||
};
|
||||
|
||||
struct J2DPrint {
|
||||
/* 802F4658 */ void setBuffer(u32);
|
||||
};
|
||||
@@ -210,23 +141,16 @@ extern "C" void _restgpr_21();
|
||||
extern "C" void _restgpr_24();
|
||||
extern "C" void _restgpr_27();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" void strcmp();
|
||||
extern "C" extern u8 g_mDoMtx_identity[48 + 24 /* padding */];
|
||||
extern "C" extern void* __vt__14J2DGrafContext[10];
|
||||
extern "C" extern void* __vt__13J2DOrthoGraph[10];
|
||||
extern "C" u8 now__14mDoMtx_stack_c[48];
|
||||
extern "C" extern u8 g_HIO[64 + 4 /* padding */];
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" extern u8 g_env_light[4880];
|
||||
extern "C" f32 Zero__4cXyz[3];
|
||||
extern "C" u8 mPadStatus__10JUTGamePad[48];
|
||||
extern "C" extern u8 j3dSys[284];
|
||||
extern "C" u8 sincosTable___5JMath[65536];
|
||||
extern "C" extern u32 data_80450580;
|
||||
extern "C" extern s8 data_80450580;
|
||||
extern "C" void* mRenderModeObj__15mDoMch_render_c[1 + 1 /* padding */];
|
||||
extern "C" extern u8 g_clearColor[4];
|
||||
extern "C" extern u32 g_whiteColor;
|
||||
extern "C" extern u32 __float_nan;
|
||||
;
|
||||
extern "C" u8 systemConsole__9JFWSystem[4];
|
||||
extern "C" u8 sManager__10JFWDisplay[4];
|
||||
extern "C" u8 sCurrentHeap__7JKRHeap[4];
|
||||
@@ -240,47 +164,60 @@ extern "C" u8 sManager__10JUTProcBar[4];
|
||||
//
|
||||
|
||||
/* 80007D9C-80007E44 0026DC 00A8+00 1/1 0/0 0/0 .text createTimg__FUsUsUl */
|
||||
// extra mr optimized out?
|
||||
#ifdef NONMATCHING
|
||||
static ResTIMG* createTimg(u16 width, u16 height, u32 format) {
|
||||
u32 buf_size = GXGetTexBufferSize(width, height, format, GX_FALSE, 0) + 0x20;
|
||||
ResTIMG* timg = (ResTIMG*)JKRHeap::alloc(buf_size, 0x20, NULL);
|
||||
|
||||
if (timg == NULL) {
|
||||
return NULL;
|
||||
} else {
|
||||
cLib_memSet(timg, 0, buf_size);
|
||||
timg->format = format;
|
||||
timg->alphaEnabled = false;
|
||||
timg->width = width;
|
||||
timg->height = height;
|
||||
timg->minFilter = GX_LINEAR;
|
||||
timg->magFilter = GX_LINEAR;
|
||||
timg->mipmapCount = 1;
|
||||
timg->texDataOffset = 0x20;
|
||||
}
|
||||
return timg;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void createTimg(u16 param_0, u16 param_1, u32 param_2) {
|
||||
static asm ResTIMG* createTimg(u16 param_0, u16 param_1, u32 param_2) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_graphic/createTimg__FUsUsUl.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80450590-80450594 000010 0004+00 2/2 1/1 0/0 .sdata mBackColor__13mDoGph_gInf_c */
|
||||
SECTION_SDATA u8 mDoGph_gInf_c::mBackColor[4] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
GXColor mDoGph_gInf_c::mBackColor = {0, 0, 0, 0};
|
||||
|
||||
/* 80450594-80450598 000014 0004+00 4/4 3/3 0/0 .sdata mFadeColor__13mDoGph_gInf_c */
|
||||
SECTION_SDATA u8 mDoGph_gInf_c::mFadeColor[4] = {
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
GXColor mDoGph_gInf_c::mFadeColor = {0, 0, 0, 0};
|
||||
|
||||
/* 80450BC8-80450BCC 0000C8 0004+00 2/2 38/38 1/1 .sbss mFader__13mDoGph_gInf_c */
|
||||
JUTFader* mDoGph_gInf_c::mFader;
|
||||
|
||||
/* 80450BCC-80450BD0 0000CC 0004+00 3/3 8/8 1/1 .sbss mFrameBufferTimg__13mDoGph_gInf_c
|
||||
*/
|
||||
u8 mDoGph_gInf_c::mFrameBufferTimg[4];
|
||||
ResTIMG* mDoGph_gInf_c::mFrameBufferTimg;
|
||||
|
||||
/* 80450BD0-80450BD4 0000D0 0004+00 3/3 6/6 0/0 .sbss mFrameBufferTex__13mDoGph_gInf_c */
|
||||
u8 mDoGph_gInf_c::mFrameBufferTex[4];
|
||||
void* mDoGph_gInf_c::mFrameBufferTex;
|
||||
|
||||
/* 80450BD4-80450BD8 0000D4 0004+00 1/1 1/1 0/0 .sbss mZbufferTimg__13mDoGph_gInf_c */
|
||||
u8 mDoGph_gInf_c::mZbufferTimg[4];
|
||||
ResTIMG* mDoGph_gInf_c::mZbufferTimg;
|
||||
|
||||
/* 80450BD8-80450BDC 0000D8 0004+00 3/3 1/1 0/0 .sbss mZbufferTex__13mDoGph_gInf_c */
|
||||
u8 mDoGph_gInf_c::mZbufferTex[4];
|
||||
void* mDoGph_gInf_c::mZbufferTex;
|
||||
|
||||
/* 80450BDC-80450BE0 0000DC 0004+00 3/3 3/3 1/1 .sbss mFadeRate__13mDoGph_gInf_c */
|
||||
f32 mDoGph_gInf_c::mFadeRate;
|
||||
@@ -293,8 +230,17 @@ f32 mDoGph_gInf_c::mFadeSpeed;
|
||||
/* 80450BE5 0001+00 data_80450BE5 None */
|
||||
/* 80450BE6 0001+00 data_80450BE6 None */
|
||||
/* 80450BE7 0001+00 data_80450BE7 None */
|
||||
extern u8 struct_80450BE4[4];
|
||||
u8 struct_80450BE4[4];
|
||||
extern u8 struct_80450BE4;
|
||||
u8 struct_80450BE4;
|
||||
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
static bool data_80450BE5;
|
||||
|
||||
static u8 data_80450BE6;
|
||||
|
||||
static bool data_80450BE7;
|
||||
#pragma pop
|
||||
|
||||
/* 80007E44-80007F90 002784 014C+00 1/1 0/0 0/0 .text create__13mDoGph_gInf_cFv */
|
||||
#pragma push
|
||||
@@ -308,17 +254,15 @@ asm void mDoGph_gInf_c::create() {
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80450BE8-80450BF0 0000E8 0008+00 1/1 0/0 0/0 .sbss None */
|
||||
static u8 data_80450BE8[8];
|
||||
static bool data_80450BE8;
|
||||
|
||||
/* 80007F90-80007FD8 0028D0 0048+00 1/1 2/2 0/0 .text beginRender__13mDoGph_gInf_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoGph_gInf_c::beginRender() {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_graphic/beginRender__13mDoGph_gInf_cFv.s"
|
||||
void mDoGph_gInf_c::beginRender() {
|
||||
if (data_80450BE8) {
|
||||
JUTXfb::getManager()->setDrawingXfbIndex(-1);
|
||||
}
|
||||
JFWDisplay::getManager()->beginRender();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80451A38-80451A3C 000038 0004+00 11/11 0/0 0/0 .sdata2 @4062 */
|
||||
@@ -333,74 +277,110 @@ SECTION_SDATA2 static u8 lit_4062[4] = {
|
||||
SECTION_SDATA2 static f32 lit_4063 = 1.0f;
|
||||
|
||||
/* 80007FD8-80008028 002918 0050+00 1/1 6/4 15/15 .text fadeOut__13mDoGph_gInf_cFfR8_GXColor */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoGph_gInf_c::fadeOut(f32 param_0, _GXColor& param_1) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_graphic/fadeOut__13mDoGph_gInf_cFfR8_GXColor.s"
|
||||
void mDoGph_gInf_c::fadeOut(f32 fadeSpeed, GXColor& fadeColor) {
|
||||
data_80450BE6 = 1;
|
||||
mFadeSpeed = fadeSpeed;
|
||||
mFadeColor = fadeColor;
|
||||
|
||||
f32 tmp_0 = FLOAT_LABEL(lit_4062);
|
||||
if (fadeSpeed >= tmp_0) {
|
||||
mFadeRate = tmp_0;
|
||||
} else {
|
||||
mFadeRate = lit_4063;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80008028-80008078 002968 0050+00 0/0 0/0 2/2 .text fadeOut_f__13mDoGph_gInf_cFfR8_GXColor */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoGph_gInf_c::fadeOut_f(f32 param_0, _GXColor& param_1) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_graphic/fadeOut_f__13mDoGph_gInf_cFfR8_GXColor.s"
|
||||
void mDoGph_gInf_c::fadeOut_f(f32 fadeSpeed, GXColor& fadeColor) {
|
||||
data_80450BE6 = 129;
|
||||
mFadeSpeed = fadeSpeed;
|
||||
mFadeColor = fadeColor;
|
||||
|
||||
f32 tmp_0 = FLOAT_LABEL(lit_4062);
|
||||
if (fadeSpeed >= tmp_0) {
|
||||
mFadeRate = tmp_0;
|
||||
} else {
|
||||
mFadeRate = lit_4063;
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80008078-800080A0 0029B8 0028+00 0/0 1/1 8/8 .text onBlure__13mDoGph_gInf_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoGph_gInf_c::onBlure() {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_graphic/onBlure__13mDoGph_gInf_cFv.s"
|
||||
void mDoGph_gInf_c::onBlure() {
|
||||
onBlure(g_mDoMtx_identity);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803DD3E8-803DD408 00A108 0020+00 3/3 3/3 0/0 .bss mFrameBufferTexObj__13mDoGph_gInf_c
|
||||
*/
|
||||
u8 mDoGph_gInf_c::mFrameBufferTexObj[32];
|
||||
GXTexObj mDoGph_gInf_c::mFrameBufferTexObj;
|
||||
|
||||
/* 803DD408-803DD428 00A128 0020+00 1/1 0/0 0/0 .bss mZbufferTexObj__13mDoGph_gInf_c */
|
||||
u8 mDoGph_gInf_c::mZbufferTexObj[32];
|
||||
GXTexObj mDoGph_gInf_c::mZbufferTexObj;
|
||||
|
||||
/* 803DD428-803DD43C 00A148 0014+00 2/2 3/3 0/0 .bss m_bloom__13mDoGph_gInf_c */
|
||||
u8 mDoGph_gInf_c::m_bloom[20];
|
||||
mDoGph_gInf_c::bloom_c mDoGph_gInf_c::m_bloom;
|
||||
|
||||
/* 803DD43C-803DD470 00A15C 0030+04 2/2 0/0 0/0 .bss mBlureMtx__13mDoGph_gInf_c */
|
||||
u8 mDoGph_gInf_c::mBlureMtx[48 + 4 /* padding */];
|
||||
Mtx mDoGph_gInf_c::mBlureMtx;
|
||||
|
||||
/* 800080A0-800080D0 0029E0 0030+00 1/1 1/1 0/0 .text onBlure__13mDoGph_gInf_cFPA4_Cf */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoGph_gInf_c::onBlure(f32 const (*param_0)[4]) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_graphic/onBlure__13mDoGph_gInf_cFPA4_Cf.s"
|
||||
void mDoGph_gInf_c::onBlure(const Mtx m) {
|
||||
struct_80450BE4 = 1;
|
||||
PSMTXCopy(m, mBlureMtx);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800080D0-800080F4 002A10 0024+00 0/0 3/3 7/7 .text fadeOut__13mDoGph_gInf_cFf */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoGph_gInf_c::fadeOut(f32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_graphic/fadeOut__13mDoGph_gInf_cFf.s"
|
||||
void mDoGph_gInf_c::fadeOut(f32 fadeSpeed) {
|
||||
fadeOut(fadeSpeed, g_clearColor);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80451A40-80451A44 000040 0004+00 5/5 0/0 0/0 .sdata2 @4105 */
|
||||
SECTION_SDATA2 static f32 lit_4105 = 10.0f;
|
||||
|
||||
/* 800080F4-80008330 002A34 023C+00 1/1 0/0 0/0 .text darwFilter__F8_GXColor */
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
static void darwFilter(GXColor matColor) {
|
||||
GXSetNumChans(1);
|
||||
GXSetChanCtrl(GX_COLOR0A0, GX_FALSE, GX_SRC_REG, GX_SRC_REG, GX_LIGHT_NULL, GX_DF_NONE,
|
||||
GX_AF_NONE);
|
||||
GXSetNumTexGens(0);
|
||||
GXSetNumTevStages(1);
|
||||
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0);
|
||||
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_RASC);
|
||||
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_ENABLE, GX_TEVPREV);
|
||||
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_RASA);
|
||||
GXSetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_ENABLE, GX_TEVPREV);
|
||||
GXSetZCompLoc(GX_ENABLE);
|
||||
GXSetZMode(GX_DISABLE, GX_ALWAYS, GX_DISABLE);
|
||||
GXSetBlendMode(GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_OR);
|
||||
GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_OR, GX_ALWAYS, 0);
|
||||
f32 tmp_0 = FLOAT_LABEL(lit_4062);
|
||||
GXSetFog(GX_FOG_NONE, tmp_0, tmp_0, tmp_0, tmp_0, g_clearColor);
|
||||
GXSetFogRangeAdj(GX_DISABLE, 0, NULL);
|
||||
GXSetCullMode(GX_CULL_NONE);
|
||||
GXSetDither(GX_ENABLE);
|
||||
GXSetNumIndStages(0);
|
||||
|
||||
Mtx44 mtx;
|
||||
f32 tmp_0_2 = FLOAT_LABEL(lit_4062);
|
||||
C_MTXOrtho(mtx, tmp_0_2, lit_4063, tmp_0_2, lit_4063, tmp_0_2, lit_4105);
|
||||
GXSetProjection(mtx, GX_ORTHOGRAPHIC);
|
||||
GXLoadPosMtxImm(g_mDoMtx_identity, GX_PNMTX0);
|
||||
GXSetChanMatColor(GX_COLOR0A0, matColor);
|
||||
GXSetCurrentMtx(0);
|
||||
GXClearVtxDesc();
|
||||
GXSetVtxDesc(GX_VA_POS, GX_DIRECT);
|
||||
GXSetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_CLR_RGBA, GX_RGB8, 0);
|
||||
GXBegin(GX_QUADS, GX_VTXFMT0, 4);
|
||||
GXPosition3s8(0, 0, -5);
|
||||
GXPosition3s8(1, 0, -5);
|
||||
GXPosition3s8(1, 1, -5);
|
||||
GXPosition3s8(0, 1, -5);
|
||||
GXEnd();
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -409,12 +389,44 @@ static asm void darwFilter(_GXColor param_0) {
|
||||
#include "asm/m_Do/m_Do_graphic/darwFilter__F8_GXColor.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80451A44-80451A48 000044 0004+00 1/1 0/0 0/0 .sdata2 @4131 */
|
||||
SECTION_SDATA2 static f32 lit_4131 = 255.0f;
|
||||
|
||||
/* 80008330-8000841C 002C70 00EC+00 1/1 0/0 0/0 .text calcFade__13mDoGph_gInf_cFv */
|
||||
// li instead of addi
|
||||
#ifdef NONMATCHING
|
||||
void mDoGph_gInf_c::calcFade() {
|
||||
if (data_80450BE6) {
|
||||
mFadeRate += mFadeSpeed;
|
||||
|
||||
if (mFadeRate < 0.0f) {
|
||||
mFadeRate = 0.0f;
|
||||
data_80450BE6 = false;
|
||||
} else {
|
||||
if (mFadeRate > 1.0f) {
|
||||
mFadeRate = 1.0f;
|
||||
}
|
||||
}
|
||||
mFadeColor.a = lit_4131 * mFadeRate;
|
||||
} else {
|
||||
if (dComIfG_getBrightness() != 255) {
|
||||
mFadeColor.r = 0;
|
||||
mFadeColor.g = 0;
|
||||
mFadeColor.b = 0;
|
||||
mFadeColor.a = 255 - dComIfG_getBrightness();
|
||||
} else {
|
||||
mFadeColor.a = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (mFadeColor.a != 0) {
|
||||
darwFilter(mFadeColor);
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -423,6 +435,7 @@ asm void mDoGph_gInf_c::calcFade() {
|
||||
#include "asm/m_Do/m_Do_graphic/calcFade__13mDoGph_gInf_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8000841C-80008420 002D5C 0004+00 0/0 1/0 0/0 .text mDoGph_BlankingON__Fv */
|
||||
void mDoGph_BlankingON() {
|
||||
@@ -435,26 +448,58 @@ void mDoGph_BlankingOFF() {
|
||||
}
|
||||
|
||||
/* 80008424-80008450 002D64 002C+00 1/1 0/0 0/0 .text dScnPly_BeforeOfPaint__Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void dScnPly_BeforeOfPaint() {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_graphic/dScnPly_BeforeOfPaint__Fv.s"
|
||||
static void dScnPly_BeforeOfPaint() {
|
||||
dComIfGd_reset();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80008450-80008474 002D90 0024+00 0/0 1/0 0/0 .text mDoGph_BeforeOfDraw__Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoGph_BeforeOfDraw() {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_graphic/mDoGph_BeforeOfDraw__Fv.s"
|
||||
int mDoGph_BeforeOfDraw() {
|
||||
dScnPly_BeforeOfPaint();
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80008474-80008630 002DB4 01BC+00 0/0 1/0 0/0 .text mDoGph_AfterOfDraw__Fv */
|
||||
// r6 / r7 swapped
|
||||
#ifdef NONMATCHING
|
||||
int mDoGph_AfterOfDraw() {
|
||||
if (fapGmHIO_isMenu()) {
|
||||
JUTProcBar::getManager()->setVisible(false);
|
||||
JUTProcBar::getManager()->setVisibleHeapBar(false);
|
||||
JUTDbPrint::getManager()->setVisible(true);
|
||||
} else {
|
||||
int sysConsole_visible = JFWSystem::getSystemConsole()->isVisible();
|
||||
int port3_connected = mDoCPd_c::isConnect(mDoCPd_c::PAD_2);
|
||||
|
||||
BOOL procBar_visible = port3_connected && fapGmHIO_getMeter() && !sysConsole_visible;
|
||||
BOOL console_visible = port3_connected && fapGmHIO_isPrint();
|
||||
|
||||
// Dev mode check
|
||||
if (!data_80450580) {
|
||||
procBar_visible = false;
|
||||
console_visible = false;
|
||||
}
|
||||
|
||||
JUTProcBar::getManager()->setVisible(procBar_visible);
|
||||
JUTProcBar::getManager()->setVisibleHeapBar(procBar_visible);
|
||||
JUTDbPrint::getManager()->setVisible(console_visible);
|
||||
}
|
||||
|
||||
GXSetZCompLoc(GX_ENABLE);
|
||||
GXSetZMode(GX_DISABLE, GX_ALWAYS, GX_DISABLE);
|
||||
GXSetBlendMode(GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA, GX_LO_CLEAR);
|
||||
GXSetAlphaCompare(GX_GREATER, 0, GX_AOP_OR, GX_GREATER, 0);
|
||||
GXSetFog(GX_FOG_NONE, 0.0f, 0.0f, 0.0f, 0.0f, g_clearColor);
|
||||
GXSetFogRangeAdj(GX_DISABLE, 0, NULL);
|
||||
GXSetCoPlanar(GX_DISABLE);
|
||||
GXSetZTexture(GX_ZT_DISABLE, GX_TF_Z8, 0);
|
||||
GXSetDither(GX_ENABLE);
|
||||
GXSetClipMode(GX_DISABLE);
|
||||
GXSetCullMode(GX_CULL_NONE);
|
||||
JUTVideo::getManager()->setRenderMode(mDoMch_render_c::getRenderModeObj());
|
||||
mDoGph_gInf_c::endFrame();
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -463,6 +508,7 @@ asm void mDoGph_AfterOfDraw() {
|
||||
#include "asm/m_Do/m_Do_graphic/mDoGph_AfterOfDraw__Fv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80450598-8045059C 000018 0004+00 1/1 0/0 0/0 .sdata l_tevColor0$4208 */
|
||||
@@ -561,7 +607,8 @@ static asm void drawDepth2(view_class* param_0, view_port_class* param_1, int pa
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm cXyz::~cXyz() {
|
||||
// asm cXyz::~cXyz() {
|
||||
extern "C" asm void __dt__4cXyzFv() {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_graphic/__dt__4cXyzFv.s"
|
||||
}
|
||||
@@ -586,40 +633,43 @@ static asm void trimming(view_class* param_0, view_port_class* param_1) {
|
||||
#pragma pop
|
||||
|
||||
/* 800094B4-80009544 003DF4 0090+00 2/2 1/1 0/0 .text mDoGph_drawFilterQuad__FScSc */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoGph_drawFilterQuad(s8 param_0, s8 param_1) {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_graphic/mDoGph_drawFilterQuad__FScSc.s"
|
||||
void mDoGph_drawFilterQuad(s8 param_0, s8 param_1) {
|
||||
GXBegin(GX_QUADS, GX_VTXFMT0, 4);
|
||||
GXPosition2s8(0, 0);
|
||||
GXTexCoord2s8(0, 0);
|
||||
GXPosition2s8(param_0, 0);
|
||||
GXTexCoord2s8(1, 0);
|
||||
GXPosition2s8(param_0, param_1);
|
||||
GXTexCoord2s8(1, 1);
|
||||
GXPosition2s8(0, param_1);
|
||||
GXTexCoord2s8(0, 1);
|
||||
GXEnd();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80451AB0-80451AB4 0000B0 0004+00 1/1 0/0 0/0 .sdata2 @4505 */
|
||||
SECTION_SDATA2 static u32 lit_4505 = 0xFFFFFFFF;
|
||||
|
||||
/* 80009544-800095F8 003E84 00B4+00 0/0 1/1 0/0 .text create__Q213mDoGph_gInf_c7bloom_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoGph_gInf_c::bloom_c::create() {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_graphic/create__Q213mDoGph_gInf_c7bloom_cFv.s"
|
||||
void mDoGph_gInf_c::bloom_c::create() {
|
||||
if (m_buffer == NULL) {
|
||||
u32 size = GXGetTexBufferSize(304, 224, 6, GX_FALSE, 0);
|
||||
m_buffer = mDoExt_getArchiveHeap()->alloc(size, -32);
|
||||
mEnable = false;
|
||||
mMode = 0;
|
||||
mPoint = 128;
|
||||
mBlureSize = 64;
|
||||
mBlureRatio = 128;
|
||||
mBlendColor = (GXColor){255, 255, 255, 255};
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 800095F8-80009650 003F38 0058+00 0/0 1/1 0/0 .text remove__Q213mDoGph_gInf_c7bloom_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoGph_gInf_c::bloom_c::remove() {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_graphic/remove__Q213mDoGph_gInf_c7bloom_cFv.s"
|
||||
void mDoGph_gInf_c::bloom_c::remove() {
|
||||
if (m_buffer != NULL) {
|
||||
mDoExt_getArchiveHeap()->free(m_buffer);
|
||||
m_buffer = NULL;
|
||||
}
|
||||
mMonoColor.a = 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80451AB4-80451AB8 0000B4 0004+00 1/1 0/0 0/0 .sdata2 @4528 */
|
||||
@@ -689,6 +739,19 @@ SECTION_SDATA2 static f32 lit_4641 = -35000.0f;
|
||||
SECTION_SDATA2 static f32 lit_4642 = -30000.0f;
|
||||
|
||||
/* 8000A504-8000A58C 004E44 0088+00 1/1 0/0 0/0 .text setLight__Fv */
|
||||
// matches with literals
|
||||
#ifdef NONMATCHING
|
||||
static void setLight() {
|
||||
GXLightObj obj;
|
||||
|
||||
GXInitLightPos(&obj, -35000.0f, 0.0f, -30000.0f);
|
||||
GXInitLightDir(&obj, 0.0f, 0.0f, 0.0f);
|
||||
GXInitLightColor(&obj, g_whiteColor);
|
||||
GXInitLightDistAttn(&obj, 0.0f, 0.0f, GX_DA_GENTLE);
|
||||
GXInitLightSpot(&obj, 0.0f, GX_SP_FLAT);
|
||||
GXLoadLightObjImm(&obj, GX_LIGHT0);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -697,16 +760,19 @@ static asm void setLight() {
|
||||
#include "asm/m_Do/m_Do_graphic/setLight__Fv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8000A58C-8000A604 004ECC 0078+00 1/1 0/0 0/0 .text drawItem3D__Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void drawItem3D() {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_graphic/drawItem3D__Fv.s"
|
||||
static void drawItem3D() {
|
||||
Mtx item_mtx;
|
||||
dMenu_Collect3D_c::setupItem3D(item_mtx);
|
||||
setLight();
|
||||
j3dSys.setViewMtx(item_mtx);
|
||||
GXSetClipMode(GX_ENABLE);
|
||||
dComIfGd_drawListItem3d();
|
||||
GXSetClipMode(GX_DISABLE);
|
||||
j3dSys.reinitGX();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80373DD0-80373DD0 000430 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
@@ -771,14 +837,14 @@ asm J2DOrthoGraph::~J2DOrthoGraph() {
|
||||
#pragma pop
|
||||
|
||||
/* 8000B174-8000B1D0 005AB4 005C+00 0/0 2/1 0/0 .text mDoGph_Create__Fv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void mDoGph_Create() {
|
||||
nofralloc
|
||||
#include "asm/m_Do/m_Do_graphic/mDoGph_Create__Fv.s"
|
||||
int mDoGph_Create() {
|
||||
JKRSolidHeap* heap = mDoExt_createSolidHeapToCurrent(0, NULL, 0);
|
||||
mDoGph_gInf_c::create();
|
||||
dComIfGd_init();
|
||||
mDoExt_adjustSolidHeap(heap);
|
||||
mDoExt_restoreCurrentHeap();
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8000B1D0-8000B1E4 005B10 0014+00 0/0 1/0 0/0 .text __sinit_m_Do_graphic_cpp */
|
||||
#pragma push
|
||||
|
||||
@@ -18,10 +18,6 @@ struct mDoMemCd_Ctrl_c {
|
||||
/* 80016730 */ void ThdInit();
|
||||
};
|
||||
|
||||
struct mDoMch_render_c {
|
||||
static _GXRenderModeObj* mRenderModeObj;
|
||||
};
|
||||
|
||||
struct mDoDvdThd {
|
||||
/* 80015858 */ void create(s32);
|
||||
};
|
||||
|
||||
+2
-79
@@ -51,7 +51,6 @@ extern "C" void quatM__14mDoMtx_stack_cFPC10Quaternion();
|
||||
extern "C" void __sinit_m_Do_mtx_cpp();
|
||||
extern "C" void __dt__18mDoMtx_quatStack_cFv();
|
||||
extern "C" void __dt__14mDoMtx_stack_cFv();
|
||||
extern "C" extern u8 g_mDoMtx_identity[48 + 24 /* padding */];
|
||||
extern "C" u8 now__14mDoMtx_stack_c[48];
|
||||
extern "C" u8 buffer__14mDoMtx_stack_c[768];
|
||||
extern "C" void* next__14mDoMtx_stack_c;
|
||||
@@ -462,84 +461,8 @@ asm mDoMtx_stack_c::~mDoMtx_stack_c() {
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803A2FD8-803A3020 0000F8 0030+18 0/0 23/23 4/4 .data g_mDoMtx_identity */
|
||||
SECTION_DATA extern u8 g_mDoMtx_identity[48 + 24 /* padding */] = {
|
||||
0x3F,
|
||||
0x80,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x3F,
|
||||
0x80,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x3F,
|
||||
0x80,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
/* padding */
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
0x00,
|
||||
};
|
||||
|
||||
/* SECTION_DATA extern Mtx g_mDoMtx_identity = {
|
||||
SECTION_DATA extern Mtx g_mDoMtx_identity = {
|
||||
{1.0f, 0.0f, 0.0f, 0.0f},
|
||||
{0.0f, 1.0f, 0.0f, 0.0f},
|
||||
{0.0f, 0.0f, 1.0f, 0.0f},
|
||||
}; */
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user