mirror of
https://github.com/zeldaret/tww.git
synced 2026-05-23 15:01:33 -04:00
124 lines
3.8 KiB
C++
124 lines
3.8 KiB
C++
//
|
|
// Generated by dtk
|
|
// Translation Unit: d_s_actor_data_mng.cpp
|
|
//
|
|
|
|
#include "d/d_s_actor_data_mng.h"
|
|
#include "JSystem/JUtility/JUTAssert.h"
|
|
|
|
/* 800C26D4-800C2704 .text __ct__12dADM_CharTblFv */
|
|
dADM_CharTbl::dADM_CharTbl() {
|
|
}
|
|
|
|
dADM_CharTbl::~dADM_CharTbl() {
|
|
}
|
|
|
|
/* 800C2758-800C2844 .text SetData__12dADM_CharTblFUlUlUlUlUlUlUl */
|
|
void dADM_CharTbl::SetData(u32 offs, u32 row_num, u32 row_offs, u32 colum_num, u32 colum_offs, u32 dat_size, u32 data_offs) {
|
|
char** pFmt = (char**)row_offs;
|
|
char** pName = (char**)colum_offs;
|
|
u8* pData = (u8*)data_offs;
|
|
|
|
u32* row = (u32*)pFmt;
|
|
for (u32 i = 0; i < row_num; i++, row++)
|
|
*row += offs;
|
|
|
|
u32* colum = (u32*)pName;
|
|
for (u32 i = 0; i < colum_num; i++, colum++)
|
|
*colum += offs;
|
|
|
|
JUT_ASSERT(0x39, dat_size == row_num * colum_num);
|
|
cDT::Set(row_num, pFmt, colum_num, pName, pData);
|
|
SetUpIndex();
|
|
}
|
|
|
|
/* 800C2844-800C2B40 .text SetUpIndex__12dADM_CharTblFv */
|
|
void dADM_CharTbl::SetUpIndex() {
|
|
mIndex_ARG = GetFormatIndex("ARG");
|
|
mIndex_N_ITEM[0] = GetFormatIndex("N_ITEM0");
|
|
mIndex_N_ITEM[1] = GetFormatIndex("N_ITEM1");
|
|
mIndex_N_ITEM[2] = GetFormatIndex("N_ITEM2");
|
|
mIndex_N_ITEM[3] = GetFormatIndex("N_ITEM3");
|
|
mIndex_N_ITEM[4] = GetFormatIndex("N_ITEM4");
|
|
mIndex_N_ITEM[5] = GetFormatIndex("N_ITEM5");
|
|
mIndex_N_ITEM[6] = GetFormatIndex("N_ITEM6");
|
|
mIndex_N_ITEM[7] = GetFormatIndex("N_ITEM7");
|
|
mIndex_N_ITEM[8] = GetFormatIndex("N_ITEM8");
|
|
mIndex_N_ITEM[9] = GetFormatIndex("N_ITEM9");
|
|
mIndex_N_ITEM[10] = GetFormatIndex("N_ITEM10");
|
|
mIndex_N_ITEM[11] = GetFormatIndex("N_ITEM11");
|
|
mIndex_N_ITEM[12] = GetFormatIndex("N_ITEM12");
|
|
mIndex_N_ITEM[13] = GetFormatIndex("N_ITEM13");
|
|
mIndex_N_ITEM[14] = GetFormatIndex("N_ITEM14");
|
|
mIndex_N_ITEM[15] = GetFormatIndex("N_ITEM15");
|
|
mIndex_percent = GetFormatIndex("percent");
|
|
mIndex_ITEM[0] = GetFormatIndex("ITEM0");
|
|
mIndex_ITEM[1] = GetFormatIndex("ITEM1");
|
|
mIndex_ITEM[2] = GetFormatIndex("ITEM2");
|
|
mIndex_ITEM[3] = GetFormatIndex("ITEM3");
|
|
mIndex_ITEM[4] = GetFormatIndex("ITEM4");
|
|
mIndex_ITEM[5] = GetFormatIndex("ITEM5");
|
|
mIndex_ITEM[6] = GetFormatIndex("ITEM6");
|
|
mIndex_ITEM[7] = GetFormatIndex("ITEM7");
|
|
}
|
|
|
|
/* 800C2B40-800C2BC8 .text GetNameIndex2__12dADM_CharTblCFPCci */
|
|
int dADM_CharTbl::GetNameIndex2(const char* pName, int index) const {
|
|
for (int start = 0; ; start++) {
|
|
int col = GetNameIndex(pName, start);
|
|
if (col == -1)
|
|
return -1;
|
|
|
|
start = col;
|
|
int inf = GetInf(mIndex_ARG, start);
|
|
if (index == inf)
|
|
return start;
|
|
}
|
|
}
|
|
|
|
/* 800C2BC8-800C2C14 .text __ct__4dADMFv */
|
|
dADM::dADM() {
|
|
mBlockCount = 0;
|
|
mpData = NULL;
|
|
}
|
|
|
|
/* 800C2C14-800C2C78 .text __dt__4dADMFv */
|
|
dADM::~dADM() {}
|
|
|
|
/* 800C2C78-800C2CC0 .text FindTag__4dADMFUlPUlPUl */
|
|
bool dADM::FindTag(u32 tag, u32* pSize, u32* pOffs) {
|
|
u32 *pData = (u32*)mpData;
|
|
for (s32 i = 0; i < mBlockCount; i++) {
|
|
if (tag == pData[0]) {
|
|
*pSize = pData[1];
|
|
*pOffs = pData[2];
|
|
return true;
|
|
}
|
|
|
|
pData += 3;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
/* 800C2CC0-800C2DFC .text SetData__4dADMFPv */
|
|
void dADM::SetData(void* pData) {
|
|
u32 row, rowOffs;
|
|
u32 name, nameOffs;
|
|
u32 dat_size, dataOffs;
|
|
|
|
mBlockCount = *((s32*)pData);
|
|
mpData = (u8*)pData + 4;
|
|
|
|
u32 *pHeader = (u32*)mpData;
|
|
for (s32 i = 0; i < mBlockCount; i++) {
|
|
pHeader[2] = pHeader[2] + (u32)pData;
|
|
pHeader += 3;
|
|
}
|
|
|
|
if (FindTag('ACFN', &row, &rowOffs) && FindTag('ACNA', &name, &nameOffs) && FindTag('ACDS', &dat_size, &dataOffs)) {
|
|
JUT_ASSERT(0xca, row * name == dat_size);
|
|
mCharTbl.SetData((u32)pData, row, rowOffs, name, nameOffs, dat_size, dataOffs);
|
|
}
|
|
}
|