Skip to content

Instantly share code, notes, and snippets.

@x1nixmzeng
Last active June 17, 2023 20:02
Show Gist options
  • Star 10 You must be signed in to star a gist
  • Fork 5 You must be signed in to fork a gist
  • Save x1nixmzeng/a4a5c419f1cd4bc72cba30d5e647bc4f to your computer and use it in GitHub Desktop.
Save x1nixmzeng/a4a5c419f1cd4bc72cba30d5e647bc4f to your computer and use it in GitHub Desktop.
Quick python script to dump the structures from Soul Worker Online
012640BC PUSH SoulWork.01C79544 ASCII "tb_Achievement"
01264666 PUSH SoulWork.01C79558 ASCII "tb_Achievement_begin"
0126478C PUSH SoulWork.01C79570 ASCII "tb_Achievement_Emblem"
01264AAC PUSH SoulWork.01C79588 ASCII "tb_Achievement_Script"
01264C66 PUSH SoulWork.01C795A0 ASCII "tb_Akashic_Disassemble"
01264DA6 PUSH SoulWork.01C795B8 ASCII "tb_Akashic_Make"
01264F0C PUSH SoulWork.01C795C8 ASCII "tb_Akashic_Parts"
012651DC PUSH SoulWork.01C795DC ASCII "tb_Akashic_Records"
0126587C PUSH SoulWork.01C795F0 ASCII "tb_Appearance"
01265AF6 PUSH SoulWork.01C79600 ASCII "tb_Aura"
01265C76 PUSH SoulWork.01C79608 ASCII "tb_Bank_Slot_Extend"
01265E1E PUSH SoulWork.01C7961C ASCII "tb_Booster"
012661DC PUSH SoulWork.01C79628 ASCII "tb_Booster_Script"
0126653C PUSH SoulWork.01C7963C ASCII "Tb_Broach_Set"
01266776 PUSH SoulWork.01C7964C ASCII "TB_BroachData"
0126688C PUSH SoulWork.01C7965C ASCII "tb_Buff"
01266E9C PUSH SoulWork.01C79664 ASCII "tb_Buff_Script"
0126728E PUSH SoulWork.01C79674 ASCII "tb_CashBilling_Info"
012674CC PUSH SoulWork.01C79688 ASCII "tb_CashShop"
0126787C PUSH SoulWork.01C79694 ASCII "tb_Character_Info"
0126897C PUSH SoulWork.01C796A8 ASCII "tb_Character_Parts"
01268DFC PUSH SoulWork.01C796BC ASCII "tb_ChattingCommand"
012690EC PUSH SoulWork.01C796D0 ASCII "tb_ChattingFilter"
0126928E PUSH SoulWork.01C796E4 ASCII "tb_Check_Access_Reward"
012693D6 PUSH SoulWork.01C796FC ASCII "tb_Check_Attendance_Info"
012694FE PUSH SoulWork.01C79718 ASCII "tb_Check_Attendance_Reward"
012696CC PUSH SoulWork.01C79734 ASCII "tb_Cinema_String"
01269D0C PUSH SoulWork.01C79748 ASCII "tb_ClassSelect_Info"
0126A336 PUSH SoulWork.01C7975C ASCII "tb_Color"
0126A4CE PUSH SoulWork.01C79768 ASCII "tb_Combo_Buff"
0126A6EE PUSH SoulWork.01C79778 ASCII "tb_ControlKeyInfo"
0126A886 PUSH SoulWork.01C7978C ASCII "tb_Costume_Socket"
0126AA4C PUSH SoulWork.01C797A0 ASCII "tb_Create_Cloth"
0126ACF6 PUSH SoulWork.01C797B0 ASCII "tb_CreateOption"
0126AEB6 PUSH SoulWork.01C797C0 ASCII "tb_Credit_Raise"
0126B00E PUSH SoulWork.01C797D0 ASCII "tb_Customer_Benefit"
0126B17E PUSH SoulWork.01C797E4 ASCII "tb_Customer_Grade"
0126B33C PUSH SoulWork.01C797F8 ASCII "tb_Customize_Eyes"
0126B67C PUSH SoulWork.01C7980C ASCII "tb_Customize_Hair"
0126BE3C PUSH SoulWork.01C79820 ASCII "tb_Customize_Info"
0126C3DC PUSH SoulWork.01C79834 ASCII "tb_Customize_Skin"
0126C92C PUSH SoulWork.01C79848 ASCII "tb_Customize_View_Ani"
0126CC2C PUSH SoulWork.01C79860 ASCII "tb_Customize_View_Costume"
0126CF7C PUSH SoulWork.01C7987C ASCII "tb_Customize_View_Sound"
0126D176 PUSH SoulWork.01C79894 ASCII "tb_Customize_View_Weapon"
0126D2DC PUSH SoulWork.01C798B0 ASCII "tb_Daily_Mission"
0126D7A6 PUSH SoulWork.01C798C4 ASCII "tb_Deck_Bonus"
0126D8FE PUSH SoulWork.01C798D4 ASCII "tb_Def_Attack"
0126DAFC PUSH SoulWork.01C798E4 ASCII "tb_Defensive_Weapon"
0126DDC6 PUSH SoulWork.01C798F8 ASCII "tb_Disassemble"
0126DECC PUSH SoulWork.01C79908 ASCII "tb_district"
0126E416 PUSH SoulWork.01C79914 ASCII "tb_District_Transport"
0126E5BC PUSH SoulWork.01C7992C ASCII "tb_Divergence"
0126E8DC PUSH SoulWork.01C7993C ASCII "Tb_Drop_Symbol"
0126F03E PUSH SoulWork.01C7994C ASCII "tb_DS_Point"
0126F2CC PUSH SoulWork.01C79958 ASCII "tb_Echelon"
0126F5E6 PUSH SoulWork.01C79964 ASCII "tb_Event_Condition"
0126F736 PUSH SoulWork.01C79978 ASCII "tb_Faction"
0126F86C PUSH SoulWork.01C79984 ASCII "tb_FX_BattleMaterial_Link"
0126FA3C PUSH SoulWork.01C799A0 ASCII "tb_Gesture"
0126FF9C PUSH SoulWork.01C799AC ASCII "tb_Help"
0127023C PUSH SoulWork.01C799B4 ASCII "tb_Help_PopUp"
0127055C PUSH SoulWork.01C799C4 ASCII "tb_Helper"
01270856 PUSH SoulWork.01C799D0 ASCII "tb_Helper_Reward"
012709DE PUSH SoulWork.01C799E4 ASCII "tb_Hidden_Event"
01270B9C PUSH SoulWork.01C799F4 ASCII "tb_HitVFX"
0127123C PUSH SoulWork.01C79A00 ASCII "tb_Infinite_Tower"
0127178E PUSH SoulWork.01C79A14 ASCII "tb_Infinite_Tower_Monster"
012719B6 PUSH SoulWork.01C79A30 ASCII "tb_Interaction_Item"
01271ABC PUSH SoulWork.01C79A44 ASCII "tb_Interaction_Object"
0127279E PUSH SoulWork.01C79A5C ASCII "tb_Inven_Slot_Extend"
012729CC PUSH SoulWork.01C79A74 ASCII "tb_Item"
012732DC PUSH SoulWork.01C79A7C ASCII "tb_Item_Classify"
0127388E PUSH SoulWork.01C79A90 ASCII "tb_Item_Classreward_Link"
012739EE PUSH SoulWork.01C79AAC ASCII "tb_Item_CostumeSet"
01273BBE PUSH SoulWork.01C79AC0 ASCII "tb_Item_Evolution"
01273DDC PUSH SoulWork.01C79AD4 ASCII "tb_item_information"
01273FAC PUSH SoulWork.01C79AE8 ASCII "tb_item_model"
012742AE PUSH SoulWork.01C79AF8 ASCII "tb_Item_Package"
012745AE PUSH SoulWork.01C79B08 ASCII "tb_Item_RandomBox"
012749DE PUSH SoulWork.01C79B1C ASCII "tb_Item_Repair"
01274C2C PUSH SoulWork.01C79B2C ASCII "tb_item_script"
0127513E PUSH SoulWork.01C79B3C ASCII "tb_Item_SetItem"
012756A6 PUSH SoulWork.01C79B4C ASCII "tb_Item_SubModel"
01275806 PUSH SoulWork.01C79B60 ASCII "tb_League_Info"
01275966 PUSH SoulWork.01C79B70 ASCII "tb_Levelup_Point"
01275A86 PUSH SoulWork.01C79B84 ASCII "tb_Loading"
01275BBC PUSH SoulWork.01C79B90 ASCII "tb_Loading_Img"
01275D76 PUSH SoulWork.01C79BA0 ASCII "tb_Loading_String"
01275E9E PUSH SoulWork.01C79BB4 ASCII "tb_Make"
0127609C PUSH SoulWork.01C79BBC ASCII "tb_Maze_Info"
01276A3E PUSH SoulWork.01C79BCC ASCII "tb_Maze_Portal"
01276CB6 PUSH SoulWork.01C79BDC ASCII "tb_MazeReward_Difficulty"
01276DBC PUSH SoulWork.01C79BF8 ASCII "tb_MazeReward_GoldDirect"
01277036 PUSH SoulWork.01C79C14 ASCII "tb_MazeReward_Level"
01277136 PUSH SoulWork.01C79C28 ASCII "tb_MazeReward_Normal"
01277236 PUSH SoulWork.01C79C40 ASCII "tb_MazeReward_PartyValue"
01277336 PUSH SoulWork.01C79C5C ASCII "tb_MazeReward_Rank"
01277446 PUSH SoulWork.01C79C70 ASCII "tb_MazeReward_SoulVaper"
01277546 PUSH SoulWork.01C79C88 ASCII "tb_MazeReward_Time"
01277646 PUSH SoulWork.01C79C9C ASCII "tb_MessageNotifyer"
012777BE PUSH SoulWork.01C79CB0 ASCII "tb_Mode_Operation"
0127799C PUSH SoulWork.01C79CC4 ASCII "tb_Monster"
012797DC PUSH SoulWork.01C79CD0 ASCII "tb_Monster_Broken_Parts"
01279C4C PUSH SoulWork.01C79CE8 ASCII "tb_Monster_Parts"
01279DAC PUSH SoulWork.01C79CFC ASCII "tb_Monster_script"
01279F4C PUSH SoulWork.01C79D10 ASCII "tb_Monster_Weapon"
0127A43C PUSH SoulWork.01C79D24 ASCII "tb_Myroom_Furniture"
0127B3EE PUSH SoulWork.01C79D38 ASCII "tb_Myroom_Greed"
0127B67E PUSH SoulWork.01C79D48 ASCII "tb_Myroom_Info"
0127B81C PUSH SoulWork.01C79D58 ASCII "tb_NameFilter"
0127B9BE PUSH SoulWork.01C79D68 ASCII "tb_Navigation_Warpmap"
0127BB4C PUSH SoulWork.01C79D80 ASCII "tb_NPC"
0127C81C PUSH SoulWork.01C79D88 ASCII "tb_NPC_Parts"
0127CA0C PUSH SoulWork.01C79D98 ASCII "tb_NPC_Script"
0127CBA6 PUSH SoulWork.01C79DA8 ASCII "tb_Option_String"
0127CCD6 PUSH SoulWork.01C79DBC ASCII "tb_PartyRevise"
0127CE06 PUSH SoulWork.01C79DCC ASCII "tb_PreSet"
0127CF7E PUSH SoulWork.01C79DD8 ASCII "tb_Quest_Chapter"
0127D18C PUSH SoulWork.01C79DEC ASCII "tb_Quest_Condition"
0127D7EC PUSH SoulWork.01C79E00 ASCII "tb_Quest_Episode"
0127E95E PUSH SoulWork.01C79E14 ASCII "tb_Quest_Reward"
0127EABC PUSH SoulWork.01C79E24 ASCII "tb_Quest_Script"
0127EF0E PUSH SoulWork.01C79E34 ASCII "tb_Quest_Season"
0127F0AE PUSH SoulWork.01C79E44 ASCII "tb_Random_Get"
0127F4F6 PUSH SoulWork.01C79E54 ASCII "tb_Random_Get_Group"
0127F676 PUSH SoulWork.01C79E68 ASCII "tb_Random_Option"
0127F796 PUSH SoulWork.01C79E7C ASCII "tb_Rank_Reward"
0127F8DE PUSH SoulWork.01C79E8C ASCII "tb_Reinforce"
0127FED6 PUSH SoulWork.01C79E9C ASCII "tb_Reinforce_Exchange"
0128003C PUSH SoulWork.01C79EB4 ASCII "tb_ResVFX"
0128040C PUSH SoulWork.01C79EC0 ASCII "tb_SFX_BattleMaterial"
012805AC PUSH SoulWork.01C79ED8 ASCII "tb_SFX_GroundMaterial"
0128078E PUSH SoulWork.01C79EF0 ASCII "tb_Shop"
012809AC PUSH SoulWork.01C79EF8 ASCII "tb_Shop_String"
01280B4C PUSH SoulWork.01C79F08 ASCII "tb_Skill"
01281BDE PUSH SoulWork.01C79F14 ASCII "tb_Skill_Action"
01281D66 PUSH SoulWork.01C79F24 ASCII "tb_Skill_Divide"
01281E9C PUSH SoulWork.01C79F34 ASCII "tb_Skill_Script"
0128231C PUSH SoulWork.01C79F44 ASCII "tb_Social_Item"
01282976 PUSH SoulWork.01C79F54 ASCII "tb_Social_Motion"
01282AAE PUSH SoulWork.01C79F68 ASCII "tb_Socket"
01282C66 PUSH SoulWork.01C79F74 ASCII "tb_Soul_Guage"
01282DDC PUSH SoulWork.01C79F84 ASCII "tb_soul_metry"
012834DC PUSH SoulWork.01C79F94 ASCII "tb_soul_metry_string"
0128368E PUSH SoulWork.01C79FAC ASCII "tb_SpecialMaze_Open"
0128389C PUSH SoulWork.01C79FC0 ASCII "tb_Speech"
01283C3C PUSH SoulWork.01C79FCC ASCII "tb_Speech_String"
01283DDC PUSH SoulWork.01C79FE0 ASCII "tb_Speech_tag"
012840DE PUSH SoulWork.01C79FF0 ASCII "tb_Status"
0128457C PUSH SoulWork.01C79FFC ASCII "tb_SystemMail"
012849AE PUSH SoulWork.01C7A00C ASCII "tb_Talk"
01284CFE PUSH SoulWork.01C7A014 ASCII "tb_Talk_List"
01284F6C PUSH SoulWork.01C7A024 ASCII "tb_Talk_String"
0128511C PUSH SoulWork.01C7A034 ASCII "tb_Time"
012852EE PUSH SoulWork.01C7A03C ASCII "tb_Title_Info"
0128553E PUSH SoulWork.01C7A04C ASCII "tb_Title_Reward"
0128568C PUSH SoulWork.01C7A05C ASCII "tb_Title_String"
0128592C PUSH SoulWork.01C7A06C ASCII "tb_Tooltip_String"
01285A8C PUSH SoulWork.01C7A080 ASCII "tb_Transport_Info"
01285E8C PUSH SoulWork.01C7A094 ASCII "tb_UI_Img"
0128603E PUSH SoulWork.01C7A0A0 ASCII "tb_UI_PopUp"
0128626C PUSH SoulWork.01C7A0AC ASCII "tb_UI_String"
0128647E PUSH SoulWork.01C7A0BC ASCII "tb_Unity_Event"
0128665C PUSH SoulWork.01C7A0CC ASCII "tb_VFX_BattleMaterial"
012869BC PUSH SoulWork.01C7A0E4 ASCII "tb_VFX_GroundMaterial"
01286C46 PUSH SoulWork.01C7A0FC ASCII "tb_Warlord_GUI"
struct tb_Achievement
{
uint i1;
ubyte b1;
ushort s1;
ubyte b2;
ushort s2;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort s3;
uint i2;
uint i3;
uint i4;
uint i5;
uint i6;
uint i7;
uint i8;
uint i9;
ubyte b3;
ubyte b4;
uint i10;
uint i11;
ubyte b5;
ubyte b6;
};
struct tb_Achievement_begin
{
ushort s1;
uint i1;
ubyte b1;
};
struct tb_Achievement_Emblem
{
ushort s1;
ubyte b1;
ushort s2;
ushort s3;
ushort s4;
ushort s5;
ushort s6;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
ushort len3;
// note: strings are wchar_t types, but hashed as bytes
ubyte str3[len3*2];
ushort len4;
// note: strings are wchar_t types, but hashed as bytes
ubyte str4[len4*2];
ushort len5;
// note: strings are wchar_t types, but hashed as bytes
ubyte str5[len5*2];
};
struct tb_Achievement_Script
{
uint i1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
};
struct tb_Akashic_Disassemble
{
uint i1;
ushort s1;
uint i2;
ubyte b1;
uint i3;
};
struct tb_Akashic_Make
{
uint i1;
ubyte b1;
uint i2;
uint i3;
ubyte b2;
uint i4;
uint i5;
};
struct tb_Akashic_Parts
{
ushort s1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
};
struct tb_Akashic_Records
{
uint i1;
ushort s1;
uint i2;
ushort s2;
ushort s3;
ubyte b1;
ubyte b2;
ubyte b3;
ubyte b4;
ubyte b5;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
ushort s4;
ushort s5;
ushort s6;
ushort len3;
// note: strings are wchar_t types, but hashed as bytes
ubyte str3[len3*2];
ushort s7;
uint i3;
ubyte b6;
ushort s8;
uint i4;
uint i5;
uint i6;
ubyte b7;
ushort s9;
ubyte b8;
uint i7;
uint i8;
uint i9;
ubyte b9;
uint i10;
uint i11;
uint i12;
uint i13;
};
struct tb_Appearance
{
uint i1;
ubyte b1;
ubyte b2;
ushort s1;
ushort s2;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
};
struct tb_Aura
{
ushort s1;
ubyte b1;
uint i1;
ubyte b2;
uint i2;
uint i3;
ushort s2;
ushort s3;
ushort s4;
};
struct tb_Bank_Slot_Extend
{
ubyte b1;
ubyte b2;
ubyte b3;
ubyte b4;
uint i1;
ubyte b5;
ubyte b6;
ubyte b7;
ubyte b8;
uint i2;
ubyte b9;
ubyte b10;
};
struct tb_Booster
{
ushort s1;
ushort s2;
ubyte b1;
ubyte b2;
ubyte b3;
ubyte b4;
ubyte b5;
ubyte b6;
ubyte b7;
ubyte b8;
ubyte b9;
ubyte b10;
ubyte b11;
ubyte b12;
ubyte b13;
ubyte b14;
ubyte b15;
ubyte b16;
ushort s3;
ushort s4;
ushort s5;
ushort s6;
ushort s7;
ushort s8;
ushort s9;
ushort s10;
ushort s11;
ubyte b17;
uint i1;
};
struct tb_Booster_Script
{
ushort s1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
ushort len3;
// note: strings are wchar_t types, but hashed as bytes
ubyte str3[len3*2];
};
struct Tb_Broach_Set
{
ushort s1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort s2;
ushort s3;
};
struct TB_BroachData
{
uint i1;
uint i2;
};
struct tb_Buff
{
ushort s1;
ubyte b1;
ubyte b2;
ubyte b3;
ushort s2;
ushort s3;
uint i1;
ubyte b4;
uint i2;
uint i3;
uint i4;
ubyte b5;
ubyte b6;
ubyte b7;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort s4;
uint i5;
ushort s5;
ushort s6;
ubyte b8;
uint i6;
ubyte b9;
uint i7;
ubyte b10;
uint i8;
ushort s7;
ushort s8;
ushort s9;
ushort s10;
ushort s11;
ushort s12;
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
ushort s13;
uint i9;
ubyte b11;
ubyte b12;
};
struct tb_Buff_Script
{
ushort s1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
ushort len3;
// note: strings are wchar_t types, but hashed as bytes
ubyte str3[len3*2];
ushort len4;
// note: strings are wchar_t types, but hashed as bytes
ubyte str4[len4*2];
};
struct tb_CashBilling_Info
{
ushort s1;
uint i1;
uint i2;
uint i3;
uint i4;
uint i5;
uint i6;
uint i7;
uint i8;
uint i9;
uint i10;
uint i11;
uint i12;
uint i13;
uint i14;
uint i15;
uint i16;
uint i17;
uint i18;
uint i19;
uint i20;
};
struct tb_CashShop
{
uint i1;
ushort s1;
ushort s2;
ubyte b1;
uint i2;
ubyte b2;
ubyte b3;
ubyte b4;
ubyte b5;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
ubyte b6;
ushort s3;
ubyte b7;
ushort s4;
};
struct tb_Character_Info
{
ushort s1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
ushort len3;
// note: strings are wchar_t types, but hashed as bytes
ubyte str3[len3*2];
ushort len4;
// note: strings are wchar_t types, but hashed as bytes
ubyte str4[len4*2];
ushort len5;
// note: strings are wchar_t types, but hashed as bytes
ubyte str5[len5*2];
ushort len6;
// note: strings are wchar_t types, but hashed as bytes
ubyte str6[len6*2];
ushort len7;
// note: strings are wchar_t types, but hashed as bytes
ubyte str7[len7*2];
uint i1;
uint i2;
uint i3;
uint i4;
uint i5;
uint i6;
uint i7;
uint i8;
uint i9;
ushort s2;
ushort s3;
uint i10;
uint i11;
uint i12;
uint i13;
uint i14;
uint i15;
ubyte b1;
uint i16;
uint i17;
uint i18;
ushort s4;
ushort s5;
ushort s6;
ushort s7;
ushort s8;
ushort s9;
ushort s10;
ubyte b2;
ushort s11;
ushort s12;
ushort s13;
ushort s14;
ushort s15;
ushort s16;
ushort s17;
ushort s18;
ushort s19;
ushort s20;
ushort s21;
ushort s22;
uint i19;
uint i20;
uint i21;
uint i22;
uint i23;
uint i24;
uint i25;
uint i26;
uint i27;
uint i28;
uint i29;
uint i30;
uint i31;
uint i32;
uint i33;
uint i34;
uint i35;
uint i36;
uint i37;
uint i38;
ushort s23;
uint i39;
ushort s24;
};
struct tb_Character_Parts
{
ushort s1;
ushort s2;
ubyte b1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
ushort len3;
// note: strings are wchar_t types, but hashed as bytes
ubyte str3[len3*2];
ushort len4;
// note: strings are wchar_t types, but hashed as bytes
ubyte str4[len4*2];
ushort len5;
// note: strings are wchar_t types, but hashed as bytes
ubyte str5[len5*2];
};
struct tb_ChattingCommand
{
uint i1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
ushort len3;
// note: strings are wchar_t types, but hashed as bytes
ubyte str3[len3*2];
ushort len4;
// note: strings are wchar_t types, but hashed as bytes
ubyte str4[len4*2];
ushort len5;
// note: strings are wchar_t types, but hashed as bytes
ubyte str5[len5*2];
uint i2;
};
struct tb_ChattingFilter
{
uint i1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
};
struct tb_Check_Access_Reward
{
uint i1;
uint i2;
uint i3;
uint i4;
uint i5;
uint i6;
uint i7;
};
struct tb_Check_Attendance_Info
{
uint i1;
uint i2;
uint i3;
};
struct tb_Check_Attendance_Reward
{
uint i1;
uint i2;
uint i3;
uint i4;
uint i5;
uint i6;
uint i7;
uint i8;
uint i9;
uint i10;
uint i11;
uint i12;
uint i13;
uint i14;
};
struct tb_Cinema_String
{
ushort s1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
ushort len3;
// note: strings are wchar_t types, but hashed as bytes
ubyte str3[len3*2];
ushort len4;
// note: strings are wchar_t types, but hashed as bytes
ubyte str4[len4*2];
ushort len5;
// note: strings are wchar_t types, but hashed as bytes
ubyte str5[len5*2];
ushort len6;
// note: strings are wchar_t types, but hashed as bytes
ubyte str6[len6*2];
ushort len7;
// note: strings are wchar_t types, but hashed as bytes
ubyte str7[len7*2];
ushort len8;
// note: strings are wchar_t types, but hashed as bytes
ubyte str8[len8*2];
};
struct tb_ClassSelect_Info
{
ubyte b1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
uint i1;
uint i2;
uint i3;
uint i4;
uint i5;
uint i6;
uint i7;
uint i8;
uint i9;
uint i10;
uint i11;
uint i12;
uint i13;
ushort s1;
ushort s2;
uint i14;
ushort s3;
ushort len3;
// note: strings are wchar_t types, but hashed as bytes
ubyte str3[len3*2];
ushort len4;
// note: strings are wchar_t types, but hashed as bytes
ubyte str4[len4*2];
ushort len5;
// note: strings are wchar_t types, but hashed as bytes
ubyte str5[len5*2];
};
struct tb_Color
{
uint i1;
ubyte b1;
ubyte b2;
ubyte b3;
ubyte b4;
ubyte b5;
ubyte b6;
ubyte b7;
ubyte b8;
ubyte b9;
ubyte b10;
};
struct tb_Combo_Buff
{
ushort s1;
ubyte b1;
ubyte b2;
ushort s2;
ubyte b3;
ushort s3;
ushort s4;
ushort s5;
ushort s6;
ushort s7;
ushort s8;
ushort s9;
ushort s10;
ushort s11;
ushort s12;
ushort s13;
ushort s14;
ushort s15;
ushort s16;
ushort s17;
ushort s18;
};
struct tb_ControlKeyInfo
{
ushort s1;
ushort s2;
ushort s3;
ushort s4;
ushort s5;
ushort s6;
ushort s7;
ushort s8;
ushort s9;
ushort s10;
ushort s11;
ushort s12;
ushort s13;
};
struct tb_Costume_Socket
{
uint i1;
ubyte b1;
ubyte b2;
ubyte b3;
ubyte b4;
ubyte b5;
ubyte b6;
ubyte b7;
ubyte b8;
ubyte b9;
ubyte b10;
ubyte b11;
uint i2;
ushort s1;
};
struct tb_Create_Cloth
{
ushort s1;
uint i1;
uint i2;
uint i3;
uint i4;
uint i5;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
};
struct tb_CreateOption
{
ushort s1;
ubyte b1;
ubyte b2;
ubyte b3;
ubyte b4;
ubyte b5;
uint i1;
ubyte b6;
ubyte b7;
ubyte b8;
ubyte b9;
uint i2;
ubyte b10;
uint i3;
};
struct tb_Credit_Raise
{
ushort s1;
ushort s2;
ubyte b1;
ubyte b2;
ubyte b3;
};
struct tb_Customer_Benefit
{
uint i1;
ushort s1;
ubyte b1;
ushort s2;
ushort s3;
uint i2;
uint i3;
uint i4;
uint i5;
};
struct tb_Customer_Grade
{
ushort s1;
ushort s2;
ubyte b1;
ushort s3;
ubyte b2;
uint i1;
ubyte b3;
uint i2;
uint i3;
uint i4;
uint i5;
uint i6;
uint i7;
};
struct tb_Customize_Eyes
{
ubyte b1;
uint i1;
uint i2;
uint i3;
uint i4;
uint i5;
uint i6;
uint i7;
uint i8;
uint i9;
uint i10;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
ushort len3;
// note: strings are wchar_t types, but hashed as bytes
ubyte str3[len3*2];
ushort len4;
// note: strings are wchar_t types, but hashed as bytes
ubyte str4[len4*2];
ushort len5;
// note: strings are wchar_t types, but hashed as bytes
ubyte str5[len5*2];
ushort len6;
// note: strings are wchar_t types, but hashed as bytes
ubyte str6[len6*2];
ushort len7;
// note: strings are wchar_t types, but hashed as bytes
ubyte str7[len7*2];
ushort len8;
// note: strings are wchar_t types, but hashed as bytes
ubyte str8[len8*2];
ushort len9;
// note: strings are wchar_t types, but hashed as bytes
ubyte str9[len9*2];
ushort len10;
// note: strings are wchar_t types, but hashed as bytes
ubyte str10[len10*2];
uint i11;
uint i12;
uint i13;
uint i14;
uint i15;
uint i16;
uint i17;
uint i18;
uint i19;
uint i20;
};
struct tb_Customize_Hair
{
ubyte b1;
uint i1;
uint i2;
uint i3;
uint i4;
uint i5;
uint i6;
uint i7;
uint i8;
uint i9;
uint i10;
uint i11;
uint i12;
uint i13;
uint i14;
uint i15;
uint i16;
uint i17;
uint i18;
uint i19;
uint i20;
uint i21;
uint i22;
uint i23;
uint i24;
uint i25;
uint i26;
uint i27;
uint i28;
uint i29;
uint i30;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
ushort len3;
// note: strings are wchar_t types, but hashed as bytes
ubyte str3[len3*2];
ushort len4;
// note: strings are wchar_t types, but hashed as bytes
ubyte str4[len4*2];
ushort len5;
// note: strings are wchar_t types, but hashed as bytes
ubyte str5[len5*2];
ushort len6;
// note: strings are wchar_t types, but hashed as bytes
ubyte str6[len6*2];
ushort len7;
// note: strings are wchar_t types, but hashed as bytes
ubyte str7[len7*2];
ushort len8;
// note: strings are wchar_t types, but hashed as bytes
ubyte str8[len8*2];
ushort len9;
// note: strings are wchar_t types, but hashed as bytes
ubyte str9[len9*2];
ushort len10;
// note: strings are wchar_t types, but hashed as bytes
ubyte str10[len10*2];
uint i31;
uint i32;
uint i33;
uint i34;
uint i35;
uint i36;
uint i37;
uint i38;
uint i39;
uint i40;
};
struct tb_Customize_Info
{
ubyte b1;
ubyte b2;
ubyte b3;
ubyte b4;
ubyte b5;
ubyte b6;
ubyte b7;
ubyte b8;
ubyte b9;
ubyte b10;
ubyte b11;
ubyte b12;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
ushort len3;
// note: strings are wchar_t types, but hashed as bytes
ubyte str3[len3*2];
ushort len4;
// note: strings are wchar_t types, but hashed as bytes
ubyte str4[len4*2];
ushort len5;
// note: strings are wchar_t types, but hashed as bytes
ubyte str5[len5*2];
};
struct tb_Customize_Skin
{
ubyte b1;
uint i1;
uint i2;
uint i3;
uint i4;
uint i5;
uint i6;
uint i7;
uint i8;
uint i9;
uint i10;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
ushort len3;
// note: strings are wchar_t types, but hashed as bytes
ubyte str3[len3*2];
ushort len4;
// note: strings are wchar_t types, but hashed as bytes
ubyte str4[len4*2];
ushort len5;
// note: strings are wchar_t types, but hashed as bytes
ubyte str5[len5*2];
ushort len6;
// note: strings are wchar_t types, but hashed as bytes
ubyte str6[len6*2];
ushort len7;
// note: strings are wchar_t types, but hashed as bytes
ubyte str7[len7*2];
ushort len8;
// note: strings are wchar_t types, but hashed as bytes
ubyte str8[len8*2];
ushort len9;
// note: strings are wchar_t types, but hashed as bytes
ubyte str9[len9*2];
ushort len10;
// note: strings are wchar_t types, but hashed as bytes
ubyte str10[len10*2];
uint i11;
uint i12;
uint i13;
uint i14;
uint i15;
uint i16;
uint i17;
uint i18;
uint i19;
uint i20;
};
struct tb_Customize_View_Ani
{
ubyte b1;
ushort s1;
ushort s2;
ushort s3;
ushort s4;
ushort s5;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
ushort len3;
// note: strings are wchar_t types, but hashed as bytes
ubyte str3[len3*2];
ushort len4;
// note: strings are wchar_t types, but hashed as bytes
ubyte str4[len4*2];
ushort len5;
// note: strings are wchar_t types, but hashed as bytes
ubyte str5[len5*2];
};
struct tb_Customize_View_Costume
{
ubyte b1;
uint i1;
uint i2;
uint i3;
uint i4;
uint i5;
uint i6;
uint i7;
uint i8;
uint i9;
uint i10;
uint i11;
uint i12;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
};
struct tb_Customize_View_Sound
{
ubyte b1;
ushort s1;
ushort s2;
ushort s3;
ushort s4;
ushort s5;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
ushort len3;
// note: strings are wchar_t types, but hashed as bytes
ubyte str3[len3*2];
ushort len4;
// note: strings are wchar_t types, but hashed as bytes
ubyte str4[len4*2];
ushort len5;
// note: strings are wchar_t types, but hashed as bytes
ubyte str5[len5*2];
};
struct tb_Customize_View_Weapon
{
ubyte b1;
uint i1;
uint i2;
uint i3;
uint i4;
uint i5;
};
struct tb_Daily_Mission
{
uint i1;
ubyte b1;
uint i2;
uint i3;
ubyte b2;
ubyte b3;
uint i4;
ubyte b4;
uint i5;
uint i6;
ubyte b5;
uint i7;
uint i8;
ubyte b6;
ubyte b7;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
uint i9;
uint i10;
uint i11;
ubyte b8;
ubyte b9;
ubyte b10;
};
struct tb_Deck_Bonus
{
ushort s1;
ubyte b1;
ubyte b2;
ushort s2;
ubyte b3;
};
struct tb_Def_Attack
{
ushort s1;
uint i1;
uint i2;
uint i3;
uint i4;
uint i5;
uint i6;
uint i7;
uint i8;
uint i9;
uint i10;
uint i11;
uint i12;
uint i13;
uint i14;
uint i15;
uint i16;
};
struct tb_Defensive_Weapon
{
uint i1;
uint i2;
ubyte b1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
};
struct tb_Disassemble
{
uint i1;
};
struct tb_district
{
ushort s1;
ushort s2;
ushort s3;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
ushort s4;
uint i1;
uint i2;
ushort len3;
// note: strings are wchar_t types, but hashed as bytes
ubyte str3[len3*2];
ushort len4;
// note: strings are wchar_t types, but hashed as bytes
ubyte str4[len4*2];
ubyte b1;
ubyte b2;
ushort len5;
// note: strings are wchar_t types, but hashed as bytes
ubyte str5[len5*2];
ubyte b3;
};
struct tb_District_Transport
{
ushort s1;
ushort s2;
ushort s3;
ushort s4;
ushort s5;
ushort s6;
ushort s7;
ubyte b1;
ubyte b2;
ubyte b3;
ubyte b4;
ubyte b5;
};
struct tb_Divergence
{
uint i1;
uint i2;
uint i3;
ubyte b1;
ubyte b2;
uint i4;
ubyte b3;
ubyte b4;
ushort s1;
ubyte b5;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ubyte b6;
uint i5;
};
struct Tb_Drop_Symbol
{
ushort s1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
ushort len3;
// note: strings are wchar_t types, but hashed as bytes
ubyte str3[len3*2];
ushort len4;
// note: strings are wchar_t types, but hashed as bytes
ubyte str4[len4*2];
ushort len5;
// note: strings are wchar_t types, but hashed as bytes
ubyte str5[len5*2];
ushort len6;
// note: strings are wchar_t types, but hashed as bytes
ubyte str6[len6*2];
ushort len7;
// note: strings are wchar_t types, but hashed as bytes
ubyte str7[len7*2];
ushort len8;
// note: strings are wchar_t types, but hashed as bytes
ubyte str8[len8*2];
ushort len9;
// note: strings are wchar_t types, but hashed as bytes
ubyte str9[len9*2];
ushort len10;
// note: strings are wchar_t types, but hashed as bytes
ubyte str10[len10*2];
};
struct tb_DS_Point
{
ushort s1;
ushort s2;
ushort s3;
ubyte b1;
ubyte b2;
ubyte b3;
ubyte b4;
ubyte b5;
ubyte b6;
ushort s4;
ushort s5;
ushort s6;
ushort s7;
ushort s8;
ubyte b7;
ubyte b8;
ubyte b9;
ubyte b10;
ubyte b11;
uint i1;
uint i2;
uint i3;
uint i4;
uint i5;
ubyte b12;
ubyte b13;
ubyte b14;
ubyte b15;
ubyte b16;
};
struct tb_Echelon
{
ubyte b1;
ushort s1;
ushort s2;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
uint i1;
};
struct tb_Event_Condition
{
uint i1;
ushort s1;
ubyte b1;
ubyte b2;
uint i2;
uint i3;
};
struct tb_Faction
{
uint i1;
ubyte b1;
ubyte b2;
ubyte b3;
};
struct tb_FX_BattleMaterial_Link
{
ubyte b1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ubyte b2;
ubyte b3;
};
struct tb_Gesture
{
ushort s1;
ubyte b1;
ubyte b2;
ubyte b3;
uint i1;
ushort s2;
uint i2;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ubyte b4;
uint i3;
uint i4;
uint i5;
uint i6;
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
ushort len3;
// note: strings are wchar_t types, but hashed as bytes
ubyte str3[len3*2];
ushort len4;
// note: strings are wchar_t types, but hashed as bytes
ubyte str4[len4*2];
uint i7;
ushort s3;
};
struct tb_Help
{
uint i1;
ushort s1;
ushort s2;
uint i2;
uint i3;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
uint i4;
};
struct tb_Help_PopUp
{
uint i1;
uint i2;
uint i3;
uint i4;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
};
struct tb_Helper
{
uint i1;
ubyte b1;
ushort s1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
};
struct tb_Helper_Reward
{
ubyte b1;
ubyte b2;
ushort s1;
uint i1;
uint i2;
uint i3;
ubyte b3;
ubyte b4;
ubyte b5;
};
struct tb_Hidden_Event
{
ushort s1;
uint i1;
uint i2;
uint i3;
uint i4;
uint i5;
ushort s2;
ushort s3;
ushort s4;
ushort s5;
ushort s6;
uint i6;
ubyte b1;
};
struct tb_HitVFX
{
ushort s1;
ushort s2;
ushort s3;
ushort s4;
ushort s5;
ushort s6;
ushort s7;
ushort s8;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
ushort len3;
// note: strings are wchar_t types, but hashed as bytes
ubyte str3[len3*2];
ushort len4;
// note: strings are wchar_t types, but hashed as bytes
ubyte str4[len4*2];
ushort len5;
// note: strings are wchar_t types, but hashed as bytes
ubyte str5[len5*2];
ushort len6;
// note: strings are wchar_t types, but hashed as bytes
ubyte str6[len6*2];
ushort len7;
// note: strings are wchar_t types, but hashed as bytes
ubyte str7[len7*2];
};
struct tb_Infinite_Tower
{
ushort s1;
ushort s2;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort s3;
ushort s4;
ushort s5;
ushort s6;
ushort s7;
uint i1;
uint i2;
uint i3;
uint i4;
uint i5;
ubyte b1;
ubyte b2;
ubyte b3;
ubyte b4;
ubyte b5;
uint i6;
uint i7;
uint i8;
uint i9;
uint i10;
ushort s8;
ushort s9;
ushort s10;
ushort s11;
ushort s12;
};
struct tb_Infinite_Tower_Monster
{
uint i1;
uint i2;
uint i3;
uint i4;
uint i5;
uint i6;
uint i7;
uint i8;
uint i9;
uint i10;
uint i11;
ushort s1;
ushort s2;
ushort s3;
ushort s4;
ushort s5;
ushort s6;
ushort s7;
ushort s8;
ushort s9;
ushort s10;
};
struct tb_Interaction_Item
{
uint i1;
};
struct tb_Interaction_Object
{
uint i1;
ubyte b1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ubyte b2;
uint i2;
ubyte b3;
ubyte b4;
ubyte b5;
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
ubyte b6;
ubyte b7;
ubyte b8;
uint i3;
uint i4;
uint i5;
uint i6;
uint i7;
uint i8;
uint i9;
uint i10;
uint i11;
ubyte b9;
uint i12;
uint i13;
uint i14;
uint i15;
uint i16;
ubyte b10;
ushort len3;
// note: strings are wchar_t types, but hashed as bytes
ubyte str3[len3*2];
ushort len4;
// note: strings are wchar_t types, but hashed as bytes
ubyte str4[len4*2];
ushort len5;
// note: strings are wchar_t types, but hashed as bytes
ubyte str5[len5*2];
ushort len6;
// note: strings are wchar_t types, but hashed as bytes
ubyte str6[len6*2];
ushort len7;
// note: strings are wchar_t types, but hashed as bytes
ubyte str7[len7*2];
ushort len8;
// note: strings are wchar_t types, but hashed as bytes
ubyte str8[len8*2];
ushort len9;
// note: strings are wchar_t types, but hashed as bytes
ubyte str9[len9*2];
ushort len10;
// note: strings are wchar_t types, but hashed as bytes
ubyte str10[len10*2];
ushort len11;
// note: strings are wchar_t types, but hashed as bytes
ubyte str11[len11*2];
ushort len12;
// note: strings are wchar_t types, but hashed as bytes
ubyte str12[len12*2];
};
struct tb_Inven_Slot_Extend
{
ubyte b1;
ubyte b2;
ubyte b3;
ubyte b4;
uint i1;
ubyte b5;
ubyte b6;
ubyte b7;
ubyte b8;
uint i2;
ubyte b9;
ubyte b10;
ubyte b11;
ubyte b12;
uint i3;
ubyte b13;
ubyte b14;
ubyte b15;
ubyte b16;
uint i4;
ubyte b17;
ubyte b18;
};
struct tb_Item
{
uint i1;
uint i2;
ubyte b1;
ubyte b2;
ushort s1;
uint i3;
uint i4;
ushort s2;
ubyte b3;
uint i5;
uint i6;
uint i7;
ushort s3;
ubyte b4;
ubyte b5;
ubyte b6;
ubyte b7;
uint i8;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ubyte b8;
ubyte b9;
uint i9;
uint i10;
uint i11;
uint i12;
ubyte b10;
ubyte b11;
ubyte b12;
ubyte b13;
ubyte b14;
ushort s4;
ushort s5;
ushort s6;
ushort s7;
ushort s8;
uint i13;
uint i14;
uint i15;
uint i16;
uint i17;
uint i18;
uint i19;
uint i20;
ushort s9;
uint i21;
ushort s10;
uint i22;
ubyte b15;
uint i23;
ubyte b16;
ushort s11;
uint i24;
ushort s12;
ubyte b17;
ubyte b18;
uint i25;
ubyte b19;
uint i26;
ubyte b20;
ubyte b21;
};
struct tb_Item_Classify
{
uint i1;
ubyte b1;
ushort s1;
ubyte b2;
ushort s2;
ubyte b3;
ushort s3;
ubyte b4;
ushort s4;
ubyte b5;
ubyte b6;
ubyte b7;
ubyte b8;
ubyte b9;
ubyte b10;
ushort s5;
ushort s6;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
ushort len3;
// note: strings are wchar_t types, but hashed as bytes
ubyte str3[len3*2];
ushort len4;
// note: strings are wchar_t types, but hashed as bytes
ubyte str4[len4*2];
};
struct tb_Item_Classreward_Link
{
ushort s1;
uint i1;
uint i2;
uint i3;
uint i4;
uint i5;
uint i6;
};
struct tb_Item_CostumeSet
{
uint i1;
ubyte b1;
uint i2;
uint i3;
uint i4;
uint i5;
uint i6;
uint i7;
uint i8;
uint i9;
uint i10;
uint i11;
uint i12;
uint i13;
};
struct tb_Item_Evolution
{
uint i1;
ubyte b1;
ushort s1;
uint i2;
uint i3;
uint i4;
uint i5;
uint i6;
uint i7;
uint i8;
uint i9;
uint i10;
uint i11;
uint i12;
ushort s2;
ushort s3;
ushort s4;
ushort s5;
ushort s6;
ushort s7;
};
struct tb_item_information
{
uint i1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort s1;
};
struct tb_item_model
{
uint i1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
ushort len3;
// note: strings are wchar_t types, but hashed as bytes
ubyte str3[len3*2];
ushort s1;
};
struct tb_Item_Package
{
uint i1;
uint i2;
uint i3;
uint i4;
uint i5;
uint i6;
uint i7;
uint i8;
uint i9;
uint i10;
uint i11;
uint i12;
uint i13;
uint i14;
uint i15;
uint i16;
uint i17;
uint i18;
uint i19;
uint i20;
uint i21;
uint i22;
uint i23;
uint i24;
uint i25;
uint i26;
uint i27;
uint i28;
uint i29;
uint i30;
uint i31;
uint i32;
uint i33;
uint i34;
};
struct tb_Item_RandomBox
{
uint i1;
ubyte b1;
uint i2;
uint i3;
ushort s1;
ushort s2;
ushort s3;
ushort s4;
ushort s5;
ushort s6;
ushort s7;
ushort s8;
ushort s9;
ushort s10;
ushort s11;
ushort s12;
ushort s13;
ushort s14;
ushort s15;
ushort s16;
ushort s17;
ushort s18;
uint i4;
uint i5;
uint i6;
uint i7;
uint i8;
uint i9;
uint i10;
uint i11;
uint i12;
uint i13;
uint i14;
uint i15;
uint i16;
uint i17;
uint i18;
uint i19;
uint i20;
uint i21;
uint i22;
uint i23;
uint i24;
uint i25;
uint i26;
uint i27;
uint i28;
uint i29;
uint i30;
uint i31;
uint i32;
uint i33;
uint i34;
uint i35;
};
struct tb_Item_Repair
{
uint i1;
};
struct tb_item_script
{
uint i1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
ushort len3;
// note: strings are wchar_t types, but hashed as bytes
ubyte str3[len3*2];
ushort len4;
// note: strings are wchar_t types, but hashed as bytes
ubyte str4[len4*2];
ushort len5;
// note: strings are wchar_t types, but hashed as bytes
ubyte str5[len5*2];
ushort len6;
// note: strings are wchar_t types, but hashed as bytes
ubyte str6[len6*2];
ubyte b1;
ubyte b2;
ubyte b3;
ubyte b4;
ubyte b5;
ushort len7;
// note: strings are wchar_t types, but hashed as bytes
ubyte str7[len7*2];
ushort len8;
// note: strings are wchar_t types, but hashed as bytes
ubyte str8[len8*2];
};
struct tb_Item_SetItem
{
uint i1;
ushort s1;
ubyte b1;
uint i2;
uint i3;
uint i4;
uint i5;
uint i6;
uint i7;
ubyte b2;
ubyte b3;
ubyte b4;
ubyte b5;
ubyte b6;
ubyte b7;
ubyte b8;
ubyte b9;
ubyte b10;
ubyte b11;
ushort s2;
ushort s3;
ushort s4;
ushort s5;
ushort s6;
ubyte b12;
ubyte b13;
ubyte b14;
ubyte b15;
ubyte b16;
ushort s7;
ushort s8;
ushort s9;
ushort s10;
ushort s11;
ubyte b17;
ubyte b18;
ubyte b19;
ubyte b20;
ubyte b21;
ushort s12;
ushort s13;
ushort s14;
ushort s15;
ushort s16;
ubyte b22;
ubyte b23;
ubyte b24;
ubyte b25;
ubyte b26;
ushort s17;
ushort s18;
ushort s19;
ushort s20;
ushort s21;
};
struct tb_Item_SubModel
{
uint i1;
uint i2;
uint i3;
uint i4;
uint i5;
uint i6;
};
struct tb_League_Info
{
uint i1;
uint i2;
uint i3;
uint i4;
uint i5;
uint i6;
};
struct tb_Levelup_Point
{
ubyte b1;
uint i1;
ushort s1;
};
struct tb_Loading
{
ubyte b1;
ushort s1;
ubyte b2;
ushort s2;
ushort s3;
};
struct tb_Loading_Img
{
ushort s1;
ushort s2;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
};
struct tb_Loading_String
{
ushort s1;
ushort s2;
ushort s3;
};
struct tb_Make
{
uint i1;
uint i2;
uint i3;
uint i4;
uint i5;
uint i6;
uint i7;
uint i8;
uint i9;
uint i10;
uint i11;
ushort s1;
ushort s2;
ushort s3;
ushort s4;
ushort s5;
uint i12;
ushort s6;
};
struct tb_Maze_Info
{
ushort s1;
ubyte b1;
ushort s2;
ubyte b2;
ubyte b3;
ushort s3;
ubyte b4;
ubyte b5;
ubyte b6;
ubyte b7;
ubyte b8;
ushort s4;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
ushort len3;
// note: strings are wchar_t types, but hashed as bytes
ubyte str3[len3*2];
ushort len4;
// note: strings are wchar_t types, but hashed as bytes
ubyte str4[len4*2];
ushort len5;
// note: strings are wchar_t types, but hashed as bytes
ubyte str5[len5*2];
ushort len6;
// note: strings are wchar_t types, but hashed as bytes
ubyte str6[len6*2];
ushort s5;
ushort s6;
ubyte b9;
ushort s7;
ushort len7;
// note: strings are wchar_t types, but hashed as bytes
ubyte str7[len7*2];
ushort len8;
// note: strings are wchar_t types, but hashed as bytes
ubyte str8[len8*2];
ushort s8;
ushort s9;
uint i1;
uint i2;
uint i3;
uint i4;
uint i5;
uint i6;
uint i7;
ubyte b10;
ubyte b11;
};
struct tb_Maze_Portal
{
ushort s1;
ubyte b1;
ushort s2;
ushort s3;
ushort s4;
ushort s5;
ushort s6;
ushort s7;
ushort s8;
ushort s9;
ushort s10;
ushort s11;
ushort s12;
ushort s13;
ushort s14;
ushort s15;
ushort s16;
ushort s17;
ushort s18;
ushort s19;
ushort s20;
ushort s21;
ushort s22;
ushort s23;
ushort s24;
ushort s25;
ushort s26;
};
struct tb_MazeReward_Difficulty
{
ubyte b1;
};
struct tb_MazeReward_GoldDirect
{
uint i1;
uint i2;
uint i3;
uint i4;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
ushort len3;
// note: strings are wchar_t types, but hashed as bytes
ubyte str3[len3*2];
ushort len4;
// note: strings are wchar_t types, but hashed as bytes
ubyte str4[len4*2];
};
struct tb_MazeReward_Level
{
ubyte b1;
};
struct tb_MazeReward_Normal
{
ushort s1;
};
struct tb_MazeReward_PartyValue
{
ubyte b1;
};
struct tb_MazeReward_Rank
{
ubyte b1;
ubyte b2;
};
struct tb_MazeReward_SoulVaper
{
ushort s1;
};
struct tb_MazeReward_Time
{
ushort s1;
};
struct tb_MessageNotifyer
{
uint i1;
ushort s1;
ushort s2;
ushort s3;
uint i2;
uint i3;
};
struct tb_Mode_Operation
{
ubyte b1;
uint i1;
ushort s1;
ushort s2;
ushort s3;
uint i2;
uint i3;
uint i4;
uint i5;
uint i6;
uint i7;
uint i8;
uint i9;
uint i10;
uint i11;
};
struct tb_Monster
{
uint i1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
uint i2;
uint i3;
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
uint i4;
uint i5;
uint i6;
ubyte b1;
uint i7;
uint i8;
uint i9;
uint i10;
uint i11;
uint i12;
uint i13;
uint i14;
ubyte b2;
ubyte b3;
ubyte b4;
ubyte b5;
ubyte b6;
ubyte b7;
ushort len3;
// note: strings are wchar_t types, but hashed as bytes
ubyte str3[len3*2];
ushort len4;
// note: strings are wchar_t types, but hashed as bytes
ubyte str4[len4*2];
ubyte b8;
ubyte b9;
ubyte b10;
uint i15;
ubyte b11;
ubyte b12;
ubyte b13;
ubyte b14;
ubyte b15;
ubyte b16;
ushort s1;
ushort s2;
ushort s3;
ushort s4;
ubyte b17;
uint i16;
ushort s5;
ubyte b18;
ubyte b19;
ushort len5;
// note: strings are wchar_t types, but hashed as bytes
ubyte str5[len5*2];
ubyte b20;
ubyte b21;
uint i17;
ushort len6;
// note: strings are wchar_t types, but hashed as bytes
ubyte str6[len6*2];
ushort len7;
// note: strings are wchar_t types, but hashed as bytes
ubyte str7[len7*2];
ubyte b22;
ubyte b23;
ubyte b24;
ubyte b25;
ushort len8;
// note: strings are wchar_t types, but hashed as bytes
ubyte str8[len8*2];
ushort len9;
// note: strings are wchar_t types, but hashed as bytes
ubyte str9[len9*2];
ushort len10;
// note: strings are wchar_t types, but hashed as bytes
ubyte str10[len10*2];
ubyte b26;
ubyte b27;
ubyte b28;
ushort len11;
// note: strings are wchar_t types, but hashed as bytes
ubyte str11[len11*2];
ushort len12;
// note: strings are wchar_t types, but hashed as bytes
ubyte str12[len12*2];
ushort len13;
// note: strings are wchar_t types, but hashed as bytes
ubyte str13[len13*2];
uint i18;
uint i19;
uint i20;
ubyte b29;
ubyte b30;
ubyte b31;
uint i21;
uint i22;
uint i23;
ubyte b32;
ubyte b33;
ubyte b34;
ushort len14;
// note: strings are wchar_t types, but hashed as bytes
ubyte str14[len14*2];
ushort len15;
// note: strings are wchar_t types, but hashed as bytes
ubyte str15[len15*2];
ushort len16;
// note: strings are wchar_t types, but hashed as bytes
ubyte str16[len16*2];
uint i24;
uint i25;
uint i26;
uint i27;
uint i28;
uint i29;
uint i30;
uint i31;
uint i32;
uint i33;
uint i34;
uint i35;
ubyte b35;
ushort s6;
ushort s7;
ubyte b36;
ubyte b37;
ushort len17;
// note: strings are wchar_t types, but hashed as bytes
ubyte str17[len17*2];
ushort s8;
ushort s9;
ubyte b38;
ushort s10;
ushort s11;
ushort s12;
ubyte b39;
uint i36;
uint i37;
uint i38;
uint i39;
uint i40;
uint i41;
uint i42;
uint i43;
uint i44;
uint i45;
uint i46;
uint i47;
uint i48;
uint i49;
uint i50;
uint i51;
uint i52;
uint i53;
uint i54;
uint i55;
uint i56;
uint i57;
uint i58;
uint i59;
uint i60;
uint i61;
uint i62;
uint i63;
uint i64;
uint i65;
uint i66;
uint i67;
uint i68;
uint i69;
ushort len18;
// note: strings are wchar_t types, but hashed as bytes
ubyte str18[len18*2];
ushort len19;
// note: strings are wchar_t types, but hashed as bytes
ubyte str19[len19*2];
ushort len20;
// note: strings are wchar_t types, but hashed as bytes
ubyte str20[len20*2];
ushort len21;
// note: strings are wchar_t types, but hashed as bytes
ubyte str21[len21*2];
uint i70;
};
struct tb_Monster_Broken_Parts
{
uint i1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
uint i2;
uint i3;
uint i4;
ushort len3;
// note: strings are wchar_t types, but hashed as bytes
ubyte str3[len3*2];
uint i5;
uint i6;
ushort len4;
// note: strings are wchar_t types, but hashed as bytes
ubyte str4[len4*2];
};
struct tb_Monster_Parts
{
uint i1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
};
struct tb_Monster_script
{
uint i1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
};
struct tb_Monster_Weapon
{
ushort s1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
ushort len3;
// note: strings are wchar_t types, but hashed as bytes
ubyte str3[len3*2];
ushort len4;
// note: strings are wchar_t types, but hashed as bytes
ubyte str4[len4*2];
ushort len5;
// note: strings are wchar_t types, but hashed as bytes
ubyte str5[len5*2];
uint i1;
uint i2;
uint i3;
uint i4;
uint i5;
uint i6;
};
struct tb_Myroom_Furniture
{
uint i1;
uint i2;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
uint i3;
uint i4;
uint i5;
uint i6;
uint i7;
uint i8;
uint i9;
uint i10;
uint i11;
uint i12;
uint i13;
uint i14;
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
uint i15;
uint i16;
ushort len3;
// note: strings are wchar_t types, but hashed as bytes
ubyte str3[len3*2];
uint i17;
uint i18;
ushort len4;
// note: strings are wchar_t types, but hashed as bytes
ubyte str4[len4*2];
uint i19;
uint i20;
ushort len5;
// note: strings are wchar_t types, but hashed as bytes
ubyte str5[len5*2];
uint i21;
ushort len6;
// note: strings are wchar_t types, but hashed as bytes
ubyte str6[len6*2];
ushort len7;
// note: strings are wchar_t types, but hashed as bytes
ubyte str7[len7*2];
uint i22;
uint i23;
uint i24;
ushort len8;
// note: strings are wchar_t types, but hashed as bytes
ubyte str8[len8*2];
ushort len9;
// note: strings are wchar_t types, but hashed as bytes
ubyte str9[len9*2];
ushort len10;
// note: strings are wchar_t types, but hashed as bytes
ubyte str10[len10*2];
uint i25;
uint i26;
ushort len11;
// note: strings are wchar_t types, but hashed as bytes
ubyte str11[len11*2];
ushort len12;
// note: strings are wchar_t types, but hashed as bytes
ubyte str12[len12*2];
ushort len13;
// note: strings are wchar_t types, but hashed as bytes
ubyte str13[len13*2];
ushort len14;
// note: strings are wchar_t types, but hashed as bytes
ubyte str14[len14*2];
ushort len15;
// note: strings are wchar_t types, but hashed as bytes
ubyte str15[len15*2];
ushort len16;
// note: strings are wchar_t types, but hashed as bytes
ubyte str16[len16*2];
ushort len17;
// note: strings are wchar_t types, but hashed as bytes
ubyte str17[len17*2];
ushort len18;
// note: strings are wchar_t types, but hashed as bytes
ubyte str18[len18*2];
ushort len19;
// note: strings are wchar_t types, but hashed as bytes
ubyte str19[len19*2];
ushort len20;
// note: strings are wchar_t types, but hashed as bytes
ubyte str20[len20*2];
ushort len21;
// note: strings are wchar_t types, but hashed as bytes
ubyte str21[len21*2];
ushort len22;
// note: strings are wchar_t types, but hashed as bytes
ubyte str22[len22*2];
ushort len23;
// note: strings are wchar_t types, but hashed as bytes
ubyte str23[len23*2];
ushort len24;
// note: strings are wchar_t types, but hashed as bytes
ubyte str24[len24*2];
ushort len25;
// note: strings are wchar_t types, but hashed as bytes
ubyte str25[len25*2];
ushort len26;
// note: strings are wchar_t types, but hashed as bytes
ubyte str26[len26*2];
ushort len27;
// note: strings are wchar_t types, but hashed as bytes
ubyte str27[len27*2];
};
struct tb_Myroom_Greed
{
uint i1;
uint i2;
uint i3;
uint i4;
uint i5;
uint i6;
uint i7;
uint i8;
uint i9;
uint i10;
uint i11;
uint i12;
uint i13;
uint i14;
uint i15;
uint i16;
uint i17;
uint i18;
uint i19;
uint i20;
uint i21;
uint i22;
uint i23;
uint i24;
uint i25;
uint i26;
uint i27;
};
struct tb_Myroom_Info
{
uint i1;
uint i2;
uint i3;
uint i4;
uint i5;
uint i6;
uint i7;
uint i8;
uint i9;
uint i10;
uint i11;
};
struct tb_NameFilter
{
uint i1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
};
struct tb_Navigation_Warpmap
{
uint i1;
ushort s1;
ubyte b1;
ushort s2;
ushort s3;
uint i2;
ushort s4;
ushort s5;
ushort s6;
uint i3;
ushort s7;
};
struct tb_NPC
{
uint i1;
ushort s1;
ubyte b1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
uint i2;
uint i3;
uint i4;
uint i5;
uint i6;
ubyte b2;
uint i7;
ubyte b3;
ubyte b4;
uint i8;
ubyte b5;
uint i9;
ubyte b6;
uint i10;
ushort s2;
ushort s3;
ushort s4;
ubyte b7;
ubyte b8;
ubyte b9;
ubyte b10;
ubyte b11;
ubyte b12;
ushort s5;
ushort s6;
ushort s7;
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
ubyte b13;
uint i11;
uint i12;
ushort len3;
// note: strings are wchar_t types, but hashed as bytes
ubyte str3[len3*2];
ushort s8;
ushort s9;
ushort s10;
ushort s11;
ushort s12;
ushort s13;
ushort s14;
ushort s15;
ushort s16;
ushort s17;
ushort s18;
ushort s19;
ushort s20;
ushort s21;
ushort s22;
ushort s23;
ushort len4;
// note: strings are wchar_t types, but hashed as bytes
ubyte str4[len4*2];
ushort len5;
// note: strings are wchar_t types, but hashed as bytes
ubyte str5[len5*2];
ushort len6;
// note: strings are wchar_t types, but hashed as bytes
ubyte str6[len6*2];
ushort len7;
// note: strings are wchar_t types, but hashed as bytes
ubyte str7[len7*2];
ushort len8;
// note: strings are wchar_t types, but hashed as bytes
ubyte str8[len8*2];
};
struct tb_NPC_Parts
{
uint i1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
};
struct tb_NPC_Script
{
uint i1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
};
struct tb_Option_String
{
ushort s1;
ubyte b1;
ushort s2;
ushort s3;
};
struct tb_PartyRevise
{
ushort s1;
ushort s2;
ubyte b1;
uint i1;
};
struct tb_PreSet
{
ushort s1;
ushort s2;
ubyte b1;
uint i1;
uint i2;
uint i3;
uint i4;
};
struct tb_Quest_Chapter
{
uint i1;
uint i2;
uint i3;
uint i4;
uint i5;
uint i6;
uint i7;
uint i8;
uint i9;
uint i10;
uint i11;
uint i12;
uint i13;
uint i14;
uint i15;
uint i16;
uint i17;
uint i18;
};
struct tb_Quest_Condition
{
uint i1;
ubyte b1;
uint i2;
ubyte b2;
uint i3;
uint i4;
ubyte b3;
uint i5;
uint i6;
uint i7;
uint i8;
uint i9;
uint i10;
uint i11;
uint i12;
uint i13;
uint i14;
uint i15;
uint i16;
uint i17;
uint i18;
ubyte b4;
uint i19;
uint i20;
ubyte b5;
ubyte b6;
uint i21;
uint i22;
ubyte b7;
ubyte b8;
uint i23;
uint i24;
uint i25;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
};
struct tb_Quest_Episode
{
uint i1;
uint i2;
uint i3;
uint i4;
ubyte b1;
ubyte b2;
uint i5;
uint i6;
uint i7;
uint i8;
uint i9;
uint i10;
uint i11;
uint i12;
uint i13;
uint i14;
uint i15;
ubyte b3;
ubyte b4;
ubyte b5;
ubyte b6;
uint i16;
ubyte b7;
uint i17;
ubyte b8;
ubyte b9;
uint i18;
ubyte b10;
uint i19;
uint i20;
uint i21;
uint i22;
uint i23;
uint i24;
uint i25;
uint i26;
uint i27;
uint i28;
uint i29;
ubyte b11;
uint i30;
uint i31;
uint i32;
uint i33;
uint i34;
uint i35;
ubyte b12;
ubyte b13;
uint i36;
uint i37;
uint i38;
uint i39;
uint i40;
uint i41;
uint i42;
uint i43;
uint i44;
uint i45;
uint i46;
uint i47;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ubyte b14;
uint i48;
uint i49;
uint i50;
uint i51;
uint i52;
uint i53;
ubyte b15;
uint i54;
uint i55;
uint i56;
uint i57;
uint i58;
uint i59;
uint i60;
uint i61;
uint i62;
uint i63;
ubyte b16;
uint i64;
uint i65;
uint i66;
uint i67;
uint i68;
uint i69;
uint i70;
uint i71;
uint i72;
uint i73;
uint i74;
uint i75;
uint i76;
uint i77;
uint i78;
ubyte b17;
uint i79;
uint i80;
uint i81;
uint i82;
uint i83;
uint i84;
uint i85;
uint i86;
uint i87;
uint i88;
};
struct tb_Quest_Reward
{
ushort s1;
uint i1;
uint i2;
uint i3;
uint i4;
uint i5;
uint i6;
};
struct tb_Quest_Script
{
uint i1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
ushort len3;
// note: strings are wchar_t types, but hashed as bytes
ubyte str3[len3*2];
ushort len4;
// note: strings are wchar_t types, but hashed as bytes
ubyte str4[len4*2];
ushort len5;
// note: strings are wchar_t types, but hashed as bytes
ubyte str5[len5*2];
};
struct tb_Quest_Season
{
uint i1;
uint i2;
uint i3;
uint i4;
uint i5;
uint i6;
uint i7;
uint i8;
uint i9;
uint i10;
uint i11;
};
struct tb_Random_Get
{
ushort s1;
uint i1;
uint i2;
uint i3;
uint i4;
uint i5;
uint i6;
uint i7;
uint i8;
uint i9;
uint i10;
uint i11;
uint i12;
uint i13;
uint i14;
uint i15;
uint i16;
uint i17;
uint i18;
uint i19;
uint i20;
uint i21;
uint i22;
uint i23;
uint i24;
uint i25;
uint i26;
uint i27;
uint i28;
uint i29;
uint i30;
ubyte b1;
ubyte b2;
ubyte b3;
ubyte b4;
ubyte b5;
ubyte b6;
ubyte b7;
ubyte b8;
ubyte b9;
ubyte b10;
ubyte b11;
ubyte b12;
ubyte b13;
ubyte b14;
ubyte b15;
ubyte b16;
ubyte b17;
ubyte b18;
ubyte b19;
ubyte b20;
ubyte b21;
ubyte b22;
ubyte b23;
ubyte b24;
ubyte b25;
ubyte b26;
ubyte b27;
ubyte b28;
ubyte b29;
ubyte b30;
};
struct tb_Random_Get_Group
{
ushort s1;
uint i1;
ubyte b1;
ubyte b2;
ushort s2;
ubyte b3;
ubyte b4;
ushort s3;
ubyte b5;
ubyte b6;
};
struct tb_Random_Option
{
uint i1;
ubyte b1;
ubyte b2;
};
struct tb_Rank_Reward
{
ushort s1;
ushort s2;
ushort s3;
uint i1;
ubyte b1;
};
struct tb_Reinforce
{
uint i1;
ushort s1;
ushort s2;
ushort s3;
uint i2;
uint i3;
uint i4;
uint i5;
uint i6;
uint i7;
uint i8;
uint i9;
uint i10;
uint i11;
uint i12;
uint i13;
uint i14;
uint i15;
uint i16;
uint i17;
uint i18;
uint i19;
uint i20;
uint i21;
uint i22;
uint i23;
uint i24;
uint i25;
uint i26;
uint i27;
uint i28;
uint i29;
uint i30;
uint i31;
uint i32;
uint i33;
uint i34;
uint i35;
uint i36;
uint i37;
uint i38;
uint i39;
uint i40;
uint i41;
ushort s4;
ushort s5;
ushort s6;
ushort s7;
ushort s8;
ushort s9;
ushort s10;
ushort s11;
ushort s12;
ushort s13;
uint i42;
uint i43;
uint i44;
uint i45;
uint i46;
uint i47;
uint i48;
uint i49;
uint i50;
uint i51;
ushort s14;
ushort s15;
ushort s16;
ushort s17;
ushort s18;
ushort s19;
ushort s20;
ushort s21;
ushort s22;
ushort s23;
};
struct tb_Reinforce_Exchange
{
uint i1;
ubyte b1;
uint i2;
ubyte b2;
uint i3;
ubyte b3;
};
struct tb_ResVFX
{
ushort s1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ubyte b1;
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
ubyte b2;
ushort len3;
// note: strings are wchar_t types, but hashed as bytes
ubyte str3[len3*2];
ubyte b3;
ubyte b4;
ubyte b5;
};
struct tb_SFX_BattleMaterial
{
ubyte b1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
};
struct tb_SFX_GroundMaterial
{
ubyte b1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
};
struct tb_Shop
{
uint i1;
uint i2;
ushort s1;
ushort s2;
ushort s3;
ubyte b1;
uint i3;
ubyte b2;
ubyte b3;
ubyte b4;
ubyte b5;
ubyte b6;
ushort s4;
uint i4;
uint i5;
uint i6;
uint i7;
uint i8;
ubyte b7;
ubyte b8;
uint i9;
};
struct tb_Shop_String
{
uint i1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
};
struct tb_Skill
{
uint i1;
ushort s1;
uint i2;
uint i3;
ubyte b1;
ubyte b2;
ubyte b3;
ubyte b4;
ubyte b5;
ubyte b6;
ubyte b7;
uint i4;
uint i5;
uint i6;
uint i7;
ubyte b8;
ubyte b9;
ubyte b10;
ubyte b11;
ushort s2;
ubyte b12;
ushort s3;
ubyte b13;
ubyte b14;
ubyte b15;
uint i8;
ubyte b16;
ubyte b17;
ubyte b18;
ubyte b19;
ubyte b20;
uint i9;
uint i10;
uint i11;
uint i12;
uint i13;
uint i14;
uint i15;
ubyte b21;
ushort s4;
ushort s5;
ubyte b22;
ubyte b23;
ubyte b24;
ubyte b25;
ubyte b26;
uint i16;
uint i17;
uint i18;
ubyte b27;
ushort s6;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort s7;
uint i19;
ubyte b28;
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
ushort len3;
// note: strings are wchar_t types, but hashed as bytes
ubyte str3[len3*2];
ushort len4;
// note: strings are wchar_t types, but hashed as bytes
ubyte str4[len4*2];
ushort len5;
// note: strings are wchar_t types, but hashed as bytes
ubyte str5[len5*2];
ubyte b29;
uint i20;
ushort s8;
ubyte b30;
ubyte b31;
ushort s9;
ushort len6;
// note: strings are wchar_t types, but hashed as bytes
ubyte str6[len6*2];
ushort len7;
// note: strings are wchar_t types, but hashed as bytes
ubyte str7[len7*2];
ushort len8;
// note: strings are wchar_t types, but hashed as bytes
ubyte str8[len8*2];
ubyte b32;
ushort len9;
// note: strings are wchar_t types, but hashed as bytes
ubyte str9[len9*2];
ushort len10;
// note: strings are wchar_t types, but hashed as bytes
ubyte str10[len10*2];
ubyte b33;
ubyte b34;
ubyte b35;
ubyte b36;
ubyte b37;
ubyte b38;
};
struct tb_Skill_Action
{
ushort s1;
uint i1;
uint i2;
uint i3;
uint i4;
uint i5;
uint i6;
uint i7;
uint i8;
uint i9;
};
struct tb_Skill_Divide
{
uint i1;
uint i2;
ubyte b1;
ubyte b2;
};
struct tb_Skill_Script
{
ushort s1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
ushort len3;
// note: strings are wchar_t types, but hashed as bytes
ubyte str3[len3*2];
ushort len4;
// note: strings are wchar_t types, but hashed as bytes
ubyte str4[len4*2];
uint i1;
uint i2;
ushort len5;
// note: strings are wchar_t types, but hashed as bytes
ubyte str5[len5*2];
};
struct tb_Social_Item
{
ushort s1;
ushort s2;
uint i1;
uint i2;
uint i3;
ubyte b1;
uint i4;
ushort s3;
ushort s4;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
ushort len3;
// note: strings are wchar_t types, but hashed as bytes
ubyte str3[len3*2];
ushort len4;
// note: strings are wchar_t types, but hashed as bytes
ubyte str4[len4*2];
ushort len5;
// note: strings are wchar_t types, but hashed as bytes
ubyte str5[len5*2];
ushort len6;
// note: strings are wchar_t types, but hashed as bytes
ubyte str6[len6*2];
};
struct tb_Social_Motion
{
ushort s1;
ushort s2;
ubyte b1;
ushort s3;
};
struct tb_Socket
{
uint i1;
ubyte b1;
ubyte b2;
ubyte b3;
uint i2;
uint i3;
ushort s1;
uint i4;
uint i5;
ushort s2;
uint i6;
uint i7;
ushort s3;
};
struct tb_Soul_Guage
{
ubyte b1;
ushort s1;
ubyte b2;
uint i1;
ubyte b3;
ubyte b4;
ushort s2;
ushort s3;
};
struct tb_soul_metry
{
ushort s1;
ushort s2;
ushort s3;
ushort s4;
ushort s5;
ushort s6;
ushort s7;
ushort s8;
ushort s9;
uint i1;
uint i2;
uint i3;
uint i4;
uint i5;
ushort s10;
ushort s11;
ushort s12;
ushort s13;
ushort s14;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
ushort len3;
// note: strings are wchar_t types, but hashed as bytes
ubyte str3[len3*2];
ushort len4;
// note: strings are wchar_t types, but hashed as bytes
ubyte str4[len4*2];
ushort len5;
// note: strings are wchar_t types, but hashed as bytes
ubyte str5[len5*2];
ushort s15;
ushort s16;
ushort s17;
ushort s18;
ushort s19;
ubyte b1;
ubyte b2;
uint i6;
uint i7;
ubyte b3;
ubyte b4;
};
struct tb_soul_metry_string
{
ushort s1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
};
struct tb_SpecialMaze_Open
{
ushort s1;
ushort s2;
ushort s3;
ushort s4;
ushort s5;
ushort s6;
ushort s7;
ushort s8;
ushort s9;
ushort s10;
ushort s11;
ubyte b1;
ubyte b2;
ubyte b3;
ubyte b4;
ubyte b5;
ubyte b6;
ubyte b7;
ubyte b8;
ubyte b9;
ubyte b10;
};
struct tb_Speech
{
uint i1;
ubyte b1;
ubyte b2;
ubyte b3;
uint i2;
uint i3;
uint i4;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ubyte b4;
ubyte b5;
ubyte b6;
uint i5;
uint i6;
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
};
struct tb_Speech_String
{
uint i1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
};
struct tb_Speech_tag
{
ubyte b1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ubyte b2;
uint i1;
uint i2;
uint i3;
uint i4;
uint i5;
uint i6;
};
struct tb_Status
{
ushort s1;
ubyte b1;
ubyte b2;
ubyte b3;
ubyte b4;
ubyte b5;
ubyte b6;
ubyte b7;
ubyte b8;
ubyte b9;
ubyte b10;
ubyte b11;
ubyte b12;
};
struct tb_SystemMail
{
ubyte b1;
ushort s1;
ushort s2;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
ushort len3;
// note: strings are wchar_t types, but hashed as bytes
ubyte str3[len3*2];
ushort len4;
// note: strings are wchar_t types, but hashed as bytes
ubyte str4[len4*2];
};
struct tb_Talk
{
uint i1;
ubyte b1;
ushort s1;
uint i2;
ubyte b2;
uint i3;
ubyte b3;
uint i4;
uint i5;
uint i6;
uint i7;
uint i8;
uint i9;
uint i10;
uint i11;
uint i12;
uint i13;
uint i14;
uint i15;
uint i16;
uint i17;
uint i18;
uint i19;
uint i20;
uint i21;
uint i22;
uint i23;
uint i24;
uint i25;
uint i26;
uint i27;
uint i28;
uint i29;
uint i30;
uint i31;
uint i32;
uint i33;
uint i34;
uint i35;
};
struct tb_Talk_List
{
ushort s1;
ushort s2;
ushort s3;
ushort s4;
ushort s5;
ushort s6;
ushort s7;
ushort s8;
ushort s9;
ushort s10;
ushort s11;
ushort s12;
ushort s13;
ushort s14;
ushort s15;
ushort s16;
ushort s17;
ushort s18;
ushort s19;
ushort s20;
ushort s21;
ushort s22;
ushort s23;
ushort s24;
ushort s25;
ushort s26;
};
struct tb_Talk_String
{
ushort s1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
};
struct tb_Time
{
uint i1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
};
struct tb_Title_Info
{
uint i1;
uint i2;
ubyte b1;
ubyte b2;
ubyte b3;
ubyte b4;
uint i3;
ubyte b5;
ubyte b6;
ubyte b7;
ubyte b8;
ubyte b9;
ubyte b10;
ushort s1;
ushort s2;
ushort s3;
ushort s4;
ushort s5;
};
struct tb_Title_Reward
{
uint i1;
uint i2;
uint i3;
uint i4;
uint i5;
uint i6;
uint i7;
};
struct tb_Title_String
{
uint i1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
ushort len3;
// note: strings are wchar_t types, but hashed as bytes
ubyte str3[len3*2];
};
struct tb_Tooltip_String
{
uint i1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
};
struct tb_Transport_Info
{
ushort s1;
ubyte b1;
uint i1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ubyte b2;
uint i2;
ubyte b3;
ubyte b4;
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
};
struct tb_UI_Img
{
ushort s1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
};
struct tb_UI_PopUp
{
ushort s1;
ubyte b1;
ushort s2;
ushort s3;
ushort s4;
ubyte b2;
ubyte b3;
ubyte b4;
ubyte b5;
ushort s5;
ushort s6;
ubyte b6;
ushort s7;
ushort s8;
ushort s9;
ushort s10;
ushort s11;
ushort s12;
ushort s13;
ushort s14;
ushort s15;
ushort s16;
};
struct tb_UI_String
{
ushort s1;
ubyte b1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
};
struct tb_Unity_Event
{
ushort s1;
ushort s2;
ushort s3;
ushort s4;
ushort s5;
ushort s6;
ushort s7;
ushort s8;
ushort s9;
ushort s10;
ushort s11;
ushort s12;
ushort s13;
ushort s14;
ushort s15;
ushort s16;
ushort s17;
};
struct tb_VFX_BattleMaterial
{
ubyte b1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
ushort len3;
// note: strings are wchar_t types, but hashed as bytes
ubyte str3[len3*2];
ushort len4;
// note: strings are wchar_t types, but hashed as bytes
ubyte str4[len4*2];
ushort len5;
// note: strings are wchar_t types, but hashed as bytes
ubyte str5[len5*2];
ushort len6;
// note: strings are wchar_t types, but hashed as bytes
ubyte str6[len6*2];
ushort len7;
// note: strings are wchar_t types, but hashed as bytes
ubyte str7[len7*2];
ushort len8;
// note: strings are wchar_t types, but hashed as bytes
ubyte str8[len8*2];
};
struct tb_VFX_GroundMaterial
{
ubyte b1;
ushort len1;
// note: strings are wchar_t types, but hashed as bytes
ubyte str1[len1*2];
ushort len2;
// note: strings are wchar_t types, but hashed as bytes
ubyte str2[len2*2];
ushort len3;
// note: strings are wchar_t types, but hashed as bytes
ubyte str3[len3*2];
ushort len4;
// note: strings are wchar_t types, but hashed as bytes
ubyte str4[len4*2];
ushort len5;
// note: strings are wchar_t types, but hashed as bytes
ubyte str5[len5*2];
ushort len6;
// note: strings are wchar_t types, but hashed as bytes
ubyte str6[len6*2];
ushort len7;
// note: strings are wchar_t types, but hashed as bytes
ubyte str7[len7*2];
ushort len8;
// note: strings are wchar_t types, but hashed as bytes
ubyte str8[len8*2];
ushort len9;
// note: strings are wchar_t types, but hashed as bytes
ubyte str9[len9*2];
};
struct tb_Warlord_GUI
{
ushort s1;
ushort s2;
uint i1;
};
# sw_extractor.py
# written by WRS/x1nixmzeng
#######################################################################
# usage:
# 1: save all string references for tb_* files to "soul_worker_res_types.txt"
# 2: label these functions
# a) read_int - 012643A0
# b) read_byte - 012642A0
# c) read_short - 01264320
# d) read_wstring_and_len - 0125E0C0
# e) read_tb - 0125DBF0
# f) read and verify checksum - 01286D00
# 3: dump the disassembly output to "soul_worker_asmdump.txt"
# 4: run "sw_extractor.py > structs.txt"
#######################################################################
# read all resource types to dump
fn_resources = 'soul_worker_res_types.txt'
# read the labelled assembly dump
fn_assembly = 'soul_worker_asmdump.txt'
with open(fn_resources) as f:
res_list = f.readlines()
with open(fn_assembly) as f:
asm_list = f.readlines()
str_space = " "
str_ascii = "ASCII "
str_read = "read_tb"
str_func = "SoulWork.read_"
for n, line in enumerate(res_list, 1):
line = line.rstrip()
addr = line[0:line.find(str_space)]
asciipos = line.find(str_ascii);
name = line[asciipos+len(str_ascii)+1:len(line)-1]
found = 0
cnt_int = 0
cnt_short = 0
cnt_byte = 0
cnt_type = 0
cnt_str = 0
for m, line2 in enumerate(asm_list, 1):
if found == 0 :
# look for our address
pos = line2.find(addr)
if pos != -1:
found = 1
elif found == 1:
# look for the file read
pos = line2.find(str_read)
if pos != -1:
found = 2
print "struct " + name
print "{"
elif found == 2:
# try to early out
if line2.find("SoulWork.read and verify checksum") != -1:
print "};"
found = 0
break
else:
# look for read calls
pos = line2.find(str_func)
if pos != -1:
pos2 = line2.find(">", pos+1)
type = line2[pos+len(str_func):pos2]
if type == "int":
cnt_int = cnt_int +1
print "\tuint i" + str(cnt_int) + ";"
elif type == "short":
cnt_short = cnt_short +1
print "\tushort s" + str(cnt_short) + ";"
elif type == "byte":
cnt_byte = cnt_byte +1
print "\tubyte b" + str(cnt_byte) + ";"
elif type == "wstring_and_len":
cnt_str = cnt_str +1
print "\tushort len" + str(cnt_str) + ";"
print "\t// note: strings are wchar_t types, but hashed as bytes"
print "\tubyte str" + str(cnt_str) + "[len" + str(cnt_str) + "*2];"
else:
print "// Unknown type " + type
@a8an7a
Copy link

a8an7a commented Mar 5, 2020

Good afternoon, could you explain how your script works. I tried to run it, but nothing worked for me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment