3287 lines
134 KiB
XML
3287 lines
134 KiB
XML
<?xml version="1.0"?>
|
|
<!-- USE A FIXED WIDTH FONT! -->
|
|
<DFExtractor>
|
|
<MemoryDescriptors>
|
|
<Entry version="meta-2010" os="all" id="meta-2010">
|
|
<Offset name="keep_me_happy">0x0</Offset>
|
|
====================================================================
|
|
T R A I T S
|
|
====================================================================
|
|
<!--
|
|
<Trait name="Nervousness" level_5="Is a nervous wreck" level_4="Is always tense and jittery" level_3="Is often nervous" level_2="Has a calm demeanor" level_1="Has a very calm demeanor" level_0="Has an incredibly calm demeanor">0</Trait>
|
|
-->
|
|
TODO: parse this, turn into Trait tags. Maybe most of it will be same as 40d.
|
|
<!--
|
|
int __userpurge sub_8FCC30<eax>(int a1<ebx>, int a2)
|
|
{
|
|
char v2; // al@1
|
|
int v3; // esi@1
|
|
char v4; // al@6
|
|
char v5; // al@11
|
|
char v6; // al@16
|
|
char v7; // al@21
|
|
void *v8; // eax@26
|
|
int v9; // edx@26
|
|
void *v10; // eax@28
|
|
int v11; // ecx@30
|
|
__int16 v12; // ax@31
|
|
int v13; // edi@31
|
|
int v14; // edx@33
|
|
int v15; // ecx@33
|
|
__int16 v16; // ax@34
|
|
int v17; // edx@35
|
|
__int16 v18; // ax@45
|
|
__int16 v19; // ax@56
|
|
__int16 v20; // ax@67
|
|
int v21; // eax@68
|
|
__int16 v22; // ax@78
|
|
__int16 v23; // ax@89
|
|
__int16 v24; // ax@100
|
|
__int16 v25; // ax@111
|
|
__int16 v26; // ax@122
|
|
__int16 v27; // ax@133
|
|
__int16 v28; // ax@144
|
|
__int16 v29; // ax@155
|
|
__int16 v30; // ax@166
|
|
__int16 v31; // ax@177
|
|
__int16 v32; // ax@188
|
|
int v33; // eax@189
|
|
int v34; // eax@189
|
|
int v35; // eax@191
|
|
int v36; // eax@191
|
|
int v37; // eax@193
|
|
int v38; // eax@193
|
|
int v39; // eax@197
|
|
int v40; // eax@197
|
|
int v41; // eax@198
|
|
int v42; // eax@198
|
|
__int16 v43; // ax@199
|
|
__int16 v44; // ax@210
|
|
__int16 v45; // ax@221
|
|
__int16 v46; // ax@232
|
|
__int16 v47; // ax@243
|
|
__int16 v48; // ax@254
|
|
int v49; // eax@261
|
|
int v50; // eax@261
|
|
int v51; // eax@264
|
|
int v52; // eax@264
|
|
__int16 v53; // ax@265
|
|
int v54; // eax@266
|
|
int v55; // eax@266
|
|
int v56; // eax@275
|
|
int v57; // eax@275
|
|
__int16 v58; // ax@276
|
|
int v59; // eax@285
|
|
int v60; // eax@285
|
|
int v61; // eax@286
|
|
int v62; // eax@286
|
|
__int16 v63; // ax@287
|
|
__int16 v64; // ax@298
|
|
int v65; // eax@308
|
|
int v66; // eax@308
|
|
int v67; // eax@308
|
|
int v68; // eax@308
|
|
int v69; // ST04_4@308
|
|
__int16 v70; // ax@309
|
|
__int16 v71; // ax@320
|
|
int v72; // eax@330
|
|
int v73; // eax@330
|
|
__int16 v74; // ax@331
|
|
int v75; // eax@338
|
|
int v76; // eax@338
|
|
__int16 v77; // ax@342
|
|
__int16 v78; // ax@353
|
|
void *v80; // [sp-8h] [bp-41Ch]@2
|
|
void *v81; // [sp-8h] [bp-41Ch]@7
|
|
void *v82; // [sp-8h] [bp-41Ch]@12
|
|
void *v83; // [sp-8h] [bp-41Ch]@17
|
|
void *v84; // [sp-8h] [bp-41Ch]@22
|
|
rsize_t v85; // [sp-4h] [bp-418h]@2
|
|
rsize_t v86; // [sp-4h] [bp-418h]@7
|
|
rsize_t v87; // [sp-4h] [bp-418h]@17
|
|
rsize_t v88; // [sp-4h] [bp-418h]@22
|
|
int v89; // [sp-4h] [bp-418h]@42
|
|
int v90; // [sp+10h] [bp-404h]@1
|
|
char v91; // [sp+14h] [bp-400h]@261
|
|
char v92; // [sp+30h] [bp-3E4h]@264
|
|
char v93; // [sp+4Ch] [bp-3C8h]@264
|
|
char v94; // [sp+68h] [bp-3ACh]@266
|
|
char v95; // [sp+84h] [bp-390h]@68
|
|
char v96; // [sp+A0h] [bp-374h]@266
|
|
char v97; // [sp+BCh] [bp-358h]@189
|
|
char v98; // [sp+D8h] [bp-33Ch]@275
|
|
char v99; // [sp+F4h] [bp-320h]@191
|
|
char v100; // [sp+110h] [bp-304h]@275
|
|
char v101; // [sp+12Ch] [bp-2E8h]@193
|
|
char v102; // [sp+148h] [bp-2CCh]@285
|
|
char v103; // [sp+164h] [bp-2B0h]@197
|
|
char v104; // [sp+180h] [bp-294h]@285
|
|
char v105; // [sp+19Ch] [bp-278h]@198
|
|
char v106; // [sp+1B8h] [bp-25Ch]@286
|
|
char v107; // [sp+1D4h] [bp-240h]@338
|
|
char v108; // [sp+1F0h] [bp-224h]@338
|
|
char v109; // [sp+20Ch] [bp-208h]@286
|
|
char v110; // [sp+228h] [bp-1ECh]@191
|
|
char v111; // [sp+244h] [bp-1D0h]@308
|
|
char v112; // [sp+260h] [bp-1B4h]@197
|
|
char v113; // [sp+27Ch] [bp-198h]@308
|
|
char v114; // [sp+298h] [bp-17Ch]@261
|
|
char v115; // [sp+2B4h] [bp-160h]@308
|
|
char v116; // [sp+2D0h] [bp-144h]@193
|
|
char v117; // [sp+2ECh] [bp-128h]@308
|
|
char v118; // [sp+308h] [bp-10Ch]@189
|
|
char v119; // [sp+324h] [bp-F0h]@330
|
|
char v120; // [sp+340h] [bp-D4h]@198
|
|
char v121; // [sp+35Ch] [bp-B8h]@330
|
|
int v122; // [sp+378h] [bp-9Ch]@189
|
|
void *v123; // [sp+37Ch] [bp-98h]@11
|
|
int v124; // [sp+38Ch] [bp-88h]@11
|
|
unsigned int v125; // [sp+390h] [bp-84h]@11
|
|
char v126; // [sp+394h] [bp-80h]@30
|
|
void *v127; // [sp+398h] [bp-7Ch]@21
|
|
int v128; // [sp+3A8h] [bp-6Ch]@21
|
|
unsigned int v129; // [sp+3ACh] [bp-68h]@21
|
|
void *v130; // [sp+3B4h] [bp-60h]@6
|
|
int v131; // [sp+3C4h] [bp-50h]@6
|
|
unsigned int v132; // [sp+3C8h] [bp-4Ch]@6
|
|
int v133; // [sp+3CCh] [bp-48h]@285
|
|
void *v134; // [sp+3D0h] [bp-44h]@16
|
|
int v135; // [sp+3E0h] [bp-34h]@16
|
|
unsigned int v136; // [sp+3E4h] [bp-30h]@16
|
|
char v137; // [sp+3E8h] [bp-2Ch]@286
|
|
void *v138; // [sp+3ECh] [bp-28h]@1
|
|
int v139; // [sp+3FCh] [bp-18h]@1
|
|
unsigned int v140; // [sp+400h] [bp-14h]@1
|
|
unsigned int v141; // [sp+404h] [bp-10h]@1
|
|
int v142; // [sp+410h] [bp-4h]@1
|
|
|
|
v141 = (unsigned int)&v90 ^ dword_AE71F4;
|
|
v3 = 0;
|
|
v140 = 15;
|
|
v139 = 0;
|
|
LOBYTE(v138) = 0;
|
|
v142 = 0;
|
|
v2 = *(_BYTE *)(a1 + 116);
|
|
if ( v2 == 1 )
|
|
{
|
|
v85 = 2;
|
|
v80 = "he";
|
|
}
|
|
else
|
|
{
|
|
if ( v2 )
|
|
{
|
|
v85 = 2;
|
|
v80 = &unk_A6C4C4;
|
|
}
|
|
else
|
|
{
|
|
v85 = 3;
|
|
v80 = &off_A6C4C0;
|
|
}
|
|
}
|
|
sub_40A070(v80, v85);
|
|
v132 = 15;
|
|
v131 = 0;
|
|
LOBYTE(v130) = 0;
|
|
LOBYTE(v142) = 1;
|
|
v4 = *(_BYTE *)(a1 + 116);
|
|
if ( v4 == 1 )
|
|
{
|
|
v86 = 3;
|
|
v81 = &off_A6C4C8;
|
|
}
|
|
else
|
|
{
|
|
if ( v4 )
|
|
{
|
|
v86 = 2;
|
|
v81 = &unk_A6C4C4;
|
|
}
|
|
else
|
|
{
|
|
v86 = 3;
|
|
v81 = &off_A6C4CC;
|
|
}
|
|
}
|
|
sub_40A070(v81, v86);
|
|
v125 = 15;
|
|
v124 = 0;
|
|
LOBYTE(v123) = 0;
|
|
LOBYTE(v142) = 2;
|
|
v5 = *(_BYTE *)(a1 + 116);
|
|
if ( v5 == 1 )
|
|
{
|
|
v82 = &off_A6C4E8;
|
|
}
|
|
else
|
|
{
|
|
if ( v5 )
|
|
v82 = &off_A49054;
|
|
else
|
|
v82 = &off_A6C4CC;
|
|
}
|
|
sub_40A070(v82, 3u);
|
|
v136 = 15;
|
|
v135 = 0;
|
|
LOBYTE(v134) = 0;
|
|
LOBYTE(v142) = 3;
|
|
v6 = *(_BYTE *)(a1 + 116);
|
|
if ( v6 == 1 )
|
|
{
|
|
v87 = 7;
|
|
v83 = "himself";
|
|
}
|
|
else
|
|
{
|
|
if ( v6 )
|
|
{
|
|
v87 = 6;
|
|
v83 = "itself";
|
|
}
|
|
else
|
|
{
|
|
v87 = 7;
|
|
v83 = "herself";
|
|
}
|
|
}
|
|
sub_40A070(v83, v87);
|
|
v129 = 15;
|
|
v128 = 0;
|
|
LOBYTE(v127) = 0;
|
|
LOBYTE(v142) = 4;
|
|
v7 = *(_BYTE *)(a1 + 116);
|
|
if ( v7 == 1 )
|
|
{
|
|
v88 = 2;
|
|
v84 = "he";
|
|
}
|
|
else
|
|
{
|
|
if ( v7 )
|
|
{
|
|
v88 = 2;
|
|
v84 = &unk_A6C4C4;
|
|
}
|
|
else
|
|
{
|
|
v88 = 3;
|
|
v84 = &off_A6C4C0;
|
|
}
|
|
}
|
|
sub_40A070(v84, v88);
|
|
v8 = v127;
|
|
if ( v129 < 0x10 )
|
|
v8 = &v127;
|
|
*(_BYTE *)v8 -= 97;
|
|
v10 = v127;
|
|
if ( v129 < 0x10 )
|
|
v10 = &v127;
|
|
*(_BYTE *)v10 += 65;
|
|
sub_410010((int)&v126, v9, (char *)&word_A4905C, 1u);
|
|
v11 = 0;
|
|
v90 = 0;
|
|
do
|
|
{
|
|
v13 = (signed __int16)v11;
|
|
v12 = *(_WORD *)(a1 + 2 * (signed __int16)v11 + 548);
|
|
if ( v12 < 40 || v12 > 60 )
|
|
{
|
|
sub_40FF20(&v126, 0);
|
|
switch ( v13 )
|
|
{
|
|
case 0:
|
|
v16 = *(_WORD *)(a1 + 2 * v13 + 548);
|
|
if ( v16 > 90 )
|
|
{
|
|
v17 = (int)"is a nervous wreck";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v16 > 75 )
|
|
{
|
|
v17 = (int)"is always tense and jittery";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v16 > 60 )
|
|
{
|
|
v17 = (int)"is often nervous";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v16 >= 25 )
|
|
{
|
|
v17 = (int)"has a calm demeanor";
|
|
goto LABEL_363;
|
|
}
|
|
v89 = a2;
|
|
if ( v16 < 10 )
|
|
v17 = (int)"has an incredibly calm demeanor";
|
|
else
|
|
v17 = (int)"has a very calm demeanor";
|
|
goto LABEL_364;
|
|
case 1:
|
|
v18 = *(_WORD *)(a1 + 2 * v13 + 548);
|
|
if ( v18 > 90 )
|
|
{
|
|
v17 = (int)"is in a constant state of internal rage";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v18 > 75 )
|
|
{
|
|
v17 = (int)"is very quick to anger";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v18 > 60 )
|
|
{
|
|
v17 = (int)"is quick to anger";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v18 >= 25 )
|
|
{
|
|
v17 = (int)"is slow to anger";
|
|
goto LABEL_363;
|
|
}
|
|
v89 = a2;
|
|
if ( v18 < 10 )
|
|
v17 = (int)"never becomes angry";
|
|
else
|
|
v17 = (int)"is very slow to anger";
|
|
goto LABEL_364;
|
|
case 2:
|
|
v19 = *(_WORD *)(a1 + 2 * v13 + 548);
|
|
if ( v19 > 90 )
|
|
{
|
|
v17 = (int)"is frequently depressed";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v19 > 75 )
|
|
{
|
|
v17 = (int)"is often sad and dejected";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v19 > 60 )
|
|
{
|
|
v17 = (int)"often feels discouraged";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v19 >= 25 )
|
|
{
|
|
v17 = (int)"rarely feels discouraged";
|
|
goto LABEL_363;
|
|
}
|
|
v89 = a2;
|
|
if ( v19 < 10 )
|
|
v17 = (int)"never feels discouraged";
|
|
else
|
|
v17 = (int)"almost never feels discouraged";
|
|
goto LABEL_364;
|
|
case 3:
|
|
v20 = *(_WORD *)(a1 + 2 * v13 + 548);
|
|
if ( v20 > 90 )
|
|
{
|
|
v21 = sub_41EC90("is socially crippled by thoughts that everyone is watching and judging ", v14);
|
|
LOBYTE(v142) = 5;
|
|
sub_40FF20(v21, 0);
|
|
LOBYTE(v142) = 4;
|
|
sub_4099A0(&v95);
|
|
goto LABEL_365;
|
|
}
|
|
if ( v20 > 75 )
|
|
{
|
|
v17 = (int)"is concerned about rejection and ridicule";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v20 > 60 )
|
|
{
|
|
v17 = (int)"is self-conscious";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v20 >= 25 )
|
|
{
|
|
v17 = (int)"is comfortable in social situations";
|
|
goto LABEL_363;
|
|
}
|
|
v89 = a2;
|
|
if ( v20 < 10 )
|
|
v17 = (int)"is absolutely unfazed by the opinions of others";
|
|
else
|
|
v17 = (int)"is very comfortable in social situations";
|
|
goto LABEL_364;
|
|
case 4:
|
|
v22 = *(_WORD *)(a1 + 2 * v13 + 548);
|
|
if ( v22 > 90 )
|
|
{
|
|
v17 = (int)"is ruled by irresistible cravings and urges";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v22 > 75 )
|
|
{
|
|
v17 = (int)"feels strong urges and seeks short-term rewards";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v22 > 60 )
|
|
{
|
|
v17 = (int)"occasionally overindulges";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v22 >= 25 )
|
|
{
|
|
v17 = (int)"doesn't often experience strong cravings or urges";
|
|
goto LABEL_363;
|
|
}
|
|
v89 = a2;
|
|
if ( v22 < 10 )
|
|
v17 = (int)"never feels tempted to overindulge in anything";
|
|
else
|
|
v17 = (int)"only rarely feels strong cravings or urges";
|
|
goto LABEL_364;
|
|
case 5:
|
|
v23 = *(_WORD *)(a1 + 2 * v13 + 548);
|
|
if ( v23 > 90 )
|
|
{
|
|
v17 = (int)"becomes completely helpless in stressful situations";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v23 > 75 )
|
|
{
|
|
v17 = (int)"cracks easily under pressure";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v23 > 60 )
|
|
{
|
|
v17 = (int)"doesn't handle stress well";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v23 >= 25 )
|
|
{
|
|
v17 = (int)"can handle stress";
|
|
goto LABEL_363;
|
|
}
|
|
v89 = a2;
|
|
if ( v23 < 10 )
|
|
v17 = (int)"is impervious to the effects of stress";
|
|
else
|
|
v17 = (int)"is confident under pressure";
|
|
goto LABEL_364;
|
|
case 6:
|
|
v24 = *(_WORD *)(a1 + 2 * v13 + 548);
|
|
if ( v24 > 90 )
|
|
{
|
|
v17 = (int)"genuinely likes others and openly expresses positive feelings toward them";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v24 > 75 )
|
|
{
|
|
v17 = (int)"makes friends quickly";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v24 > 60 )
|
|
{
|
|
v17 = (int)"is very friendly";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v24 >= 25 )
|
|
{
|
|
v17 = (int)"is somewhat reserved";
|
|
goto LABEL_363;
|
|
}
|
|
v89 = a2;
|
|
if ( v24 < 10 )
|
|
v17 = (int)"does not actively seek friendships and is incredibly distant and reserved";
|
|
else
|
|
v17 = (int)"is very distant and reserved";
|
|
goto LABEL_364;
|
|
case 7:
|
|
v25 = *(_WORD *)(a1 + 2 * v13 + 548);
|
|
if ( v25 > 90 )
|
|
{
|
|
v17 = (int)"truly treasures the company of others";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v25 > 75 )
|
|
{
|
|
v17 = (int)"enjoys being in crowds";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v25 > 60 )
|
|
{
|
|
v17 = (int)"enjoys the company of others";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v25 >= 25 )
|
|
{
|
|
v17 = (int)"tends to avoid crowds";
|
|
goto LABEL_363;
|
|
}
|
|
v89 = a2;
|
|
if ( v25 < 10 )
|
|
v17 = (int)"considers spending time alone much more important than associating with others";
|
|
else
|
|
v17 = (int)"prefers to be alone";
|
|
goto LABEL_364;
|
|
case 8:
|
|
v26 = *(_WORD *)(a1 + 2 * v13 + 548);
|
|
if ( v26 > 90 )
|
|
{
|
|
v17 = (int)"loves to take charge and direct activities";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v26 > 75 )
|
|
{
|
|
v17 = (int)"is very assertive";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v26 > 60 )
|
|
{
|
|
v17 = (int)"is assertive";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v26 >= 25 )
|
|
{
|
|
v17 = (int)"is unassertive";
|
|
goto LABEL_363;
|
|
}
|
|
v89 = a2;
|
|
if ( v26 < 10 )
|
|
v17 = (int)"never speaks out or attempts to direct activities";
|
|
else
|
|
v17 = (int)"prefers that others handle the leadership roles";
|
|
goto LABEL_364;
|
|
case 9:
|
|
v27 = *(_WORD *)(a1 + 2 * v13 + 548);
|
|
if ( v27 > 90 )
|
|
{
|
|
v17 = (int)"is constantly active and energetic";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v27 > 75 )
|
|
{
|
|
v17 = (int)"is very energetic and active";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v27 > 60 )
|
|
{
|
|
v17 = (int)"is very active";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v27 >= 25 )
|
|
{
|
|
v17 = (int)"is relaxed";
|
|
goto LABEL_363;
|
|
}
|
|
v89 = a2;
|
|
if ( v27 < 10 )
|
|
v17 = (int)"can't be bothered with frantic, fast-paced living";
|
|
else
|
|
v17 = (int)"lives life at a leisurely pace";
|
|
goto LABEL_364;
|
|
case 10:
|
|
v28 = *(_WORD *)(a1 + 2 * v13 + 548);
|
|
if ( v28 > 90 )
|
|
{
|
|
v17 = (int)"lives for risk and excitement";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v28 > 75 )
|
|
{
|
|
v17 = (int)"is a risk-taker and a thrill-seeker";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v28 > 60 )
|
|
{
|
|
v17 = (int)"loves a good thrill";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v28 >= 25 )
|
|
{
|
|
v17 = (int)"is not a risk-taker";
|
|
goto LABEL_363;
|
|
}
|
|
v89 = a2;
|
|
if ( v28 < 10 )
|
|
v17 = (int)"is entirely averse to risk and excitement";
|
|
else
|
|
v17 = (int)"doesn't need thrills or risks in life";
|
|
goto LABEL_364;
|
|
case 11:
|
|
v29 = *(_WORD *)(a1 + 2 * v13 + 548);
|
|
if ( v29 > 90 )
|
|
{
|
|
v17 = (int)"often feels filled with joy";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v29 > 75 )
|
|
{
|
|
v17 = (int)"can be very happy and optimistic";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v29 > 60 )
|
|
{
|
|
v17 = (int)"is often cheerful";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v29 >= 25 )
|
|
{
|
|
v17 = (int)"is rarely happy or enthusiastic";
|
|
goto LABEL_363;
|
|
}
|
|
v89 = a2;
|
|
if ( v29 < 10 )
|
|
v17 = (int)"is never optimistic or enthusiastic about anything";
|
|
else
|
|
v17 = (int)"is a pessimist";
|
|
goto LABEL_364;
|
|
case 12:
|
|
v30 = *(_WORD *)(a1 + 2 * v13 + 548);
|
|
if ( v30 > 90 )
|
|
{
|
|
v17 = (int)"is bored by reality and has a wonderful imagination";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v30 > 75 )
|
|
{
|
|
v17 = (int)"is incredibly creative";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v30 > 60 )
|
|
{
|
|
v17 = (int)"has a fertile imagination";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v30 >= 25 )
|
|
{
|
|
v17 = (int)"isn't given to flights of fancy";
|
|
goto LABEL_363;
|
|
}
|
|
v89 = a2;
|
|
if ( v30 < 10 )
|
|
v17 = (int)"is interested only in facts and the real world";
|
|
else
|
|
v17 = (int)"is grounded in reality";
|
|
goto LABEL_364;
|
|
case 13:
|
|
v31 = *(_WORD *)(a1 + 2 * v13 + 548);
|
|
if ( v31 > 90 )
|
|
{
|
|
v17 = (int)"can easily become absorbed in art and the beauty of the natural world";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v31 > 75 )
|
|
{
|
|
v17 = (int)"greatly appreciates art and natural beauty";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v31 > 60 )
|
|
{
|
|
v17 = (int)"appreciates art and natural beauty";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v31 >= 25 )
|
|
{
|
|
v17 = (int)"does not have a great aesthetic sensitivity";
|
|
goto LABEL_363;
|
|
}
|
|
v89 = a2;
|
|
if ( v31 < 10 )
|
|
v17 = (int)"is completely uninterested in art";
|
|
else
|
|
v17 = (int)"is not interested in art";
|
|
goto LABEL_364;
|
|
case 14:
|
|
v32 = *(_WORD *)(a1 + 2 * v13 + 548);
|
|
if ( v32 > 90 )
|
|
{
|
|
v33 = sub_41EC90("has a profound understanding of ", (int)&v122);
|
|
LOBYTE(v142) = 6;
|
|
v34 = sub_416630(v33, &v122);
|
|
LOBYTE(v142) = 7;
|
|
sub_40FF20(v34, 0);
|
|
sub_4099A0(&v118);
|
|
LOBYTE(v142) = 4;
|
|
sub_4099A0(&v97);
|
|
goto LABEL_365;
|
|
}
|
|
if ( v32 > 75 )
|
|
{
|
|
v35 = sub_41EC90("has a great awareness of ", v14);
|
|
LOBYTE(v142) = 8;
|
|
v36 = sub_416630(v35, &v122);
|
|
LOBYTE(v142) = 9;
|
|
sub_40FF20(v36, 0);
|
|
sub_4099A0(&v110);
|
|
LOBYTE(v142) = 4;
|
|
sub_4099A0(&v99);
|
|
goto LABEL_365;
|
|
}
|
|
if ( v32 > 60 )
|
|
{
|
|
v37 = sub_41EC90("has a good awareness of ", v14);
|
|
LOBYTE(v142) = 10;
|
|
v38 = sub_416630(v37, &v122);
|
|
LOBYTE(v142) = 11;
|
|
sub_40FF20(v38, 0);
|
|
sub_4099A0(&v116);
|
|
LOBYTE(v142) = 4;
|
|
sub_4099A0(&v101);
|
|
goto LABEL_365;
|
|
}
|
|
if ( v32 >= 25 )
|
|
{
|
|
v17 = (int)"tends not to openly express emotions";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v32 < 10 )
|
|
{
|
|
v41 = sub_41EC90("does not display ", v14);
|
|
LOBYTE(v142) = 14;
|
|
v42 = sub_416630(v41, &v122);
|
|
LOBYTE(v142) = 15;
|
|
sub_40FF20(v42, 0);
|
|
sub_4099A0(&v120);
|
|
LOBYTE(v142) = 4;
|
|
sub_4099A0(&v105);
|
|
}
|
|
else
|
|
{
|
|
v39 = sub_41EC90("is mostly unaware of ", (int)&v122);
|
|
LOBYTE(v142) = 12;
|
|
v40 = sub_416630(v39, &v122);
|
|
LOBYTE(v142) = 13;
|
|
sub_40FF20(v40, 0);
|
|
sub_4099A0(&v112);
|
|
LOBYTE(v142) = 4;
|
|
sub_4099A0(&v103);
|
|
}
|
|
goto LABEL_365;
|
|
case 15:
|
|
v43 = *(_WORD *)(a1 + 2 * v13 + 548);
|
|
if ( v43 > 90 )
|
|
{
|
|
v17 = (int)"is highly adventurous and loves fresh experiences";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v43 > 75 )
|
|
{
|
|
v17 = (int)"is eager for new experiences";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v43 > 60 )
|
|
{
|
|
v17 = (int)"likes to try new things";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v43 >= 25 )
|
|
{
|
|
v17 = (int)"prefers familiar routines";
|
|
goto LABEL_363;
|
|
}
|
|
v89 = a2;
|
|
if ( v43 < 10 )
|
|
v17 = (int)"is resistant to change";
|
|
else
|
|
v17 = (int)"is uncomfortable with change";
|
|
goto LABEL_364;
|
|
case 16:
|
|
v44 = *(_WORD *)(a1 + 2 * v13 + 548);
|
|
if ( v44 > 90 )
|
|
{
|
|
v17 = (int)"is entranced by riddles and puzzles and loves to debate issues and ideas";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v44 > 75 )
|
|
{
|
|
v17 = (int)"loves new and fresh ideas";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v44 > 60 )
|
|
{
|
|
v17 = (int)"is open-minded to new ideas";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v44 >= 25 )
|
|
{
|
|
v17 = (int)"dislikes intellectual discussions";
|
|
goto LABEL_363;
|
|
}
|
|
v89 = a2;
|
|
if ( v44 < 10 )
|
|
v17 = (int)"is completely uninterested in ideas and debates over intellectual issues";
|
|
else
|
|
v17 = (int)"regards intellectual exercises as a waste of energy";
|
|
goto LABEL_364;
|
|
case 17:
|
|
v45 = *(_WORD *)(a1 + 2 * v13 + 548);
|
|
if ( v45 > 90 )
|
|
{
|
|
v17 = (int)"revels in chaos and disorder";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v45 > 75 )
|
|
{
|
|
v17 = (int)"loves to defy convention";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v45 > 60 )
|
|
{
|
|
v17 = (int)"is put off by authority and tradition";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v45 >= 25 )
|
|
{
|
|
v17 = (int)"admires tradition";
|
|
goto LABEL_363;
|
|
}
|
|
v89 = a2;
|
|
if ( v45 < 10 )
|
|
v17 = (int)"is an ardent believer in convention and traditional society";
|
|
else
|
|
v17 = (int)"prefers stability and security to ambiguity and disorder";
|
|
goto LABEL_364;
|
|
case 18:
|
|
v46 = *(_WORD *)(a1 + 2 * v13 + 548);
|
|
if ( v46 > 90 )
|
|
{
|
|
v17 = (int)"is naturally trustful of everybody";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v46 > 75 )
|
|
{
|
|
v17 = (int)"is very trusting";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v46 > 60 )
|
|
{
|
|
v17 = (int)"is trusting";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v46 >= 25 )
|
|
{
|
|
v17 = (int)"is slow to trust others";
|
|
goto LABEL_363;
|
|
}
|
|
v89 = a2;
|
|
if ( v46 < 10 )
|
|
v17 = (int)"sees others as selfish and conniving";
|
|
else
|
|
v17 = (int)"does not trust others";
|
|
goto LABEL_364;
|
|
case 19:
|
|
v47 = *(_WORD *)(a1 + 2 * v13 + 548);
|
|
if ( v47 > 90 )
|
|
{
|
|
v17 = (int)"is incredibly frank and candid in dealings with others";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v47 > 75 )
|
|
{
|
|
v17 = (int)"is very straightforward with others";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v47 > 60 )
|
|
{
|
|
v17 = (int)"is candid and sincere in dealings with others";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v47 >= 25 )
|
|
{
|
|
v17 = (int)"is guarded in relationships with others";
|
|
goto LABEL_363;
|
|
}
|
|
v89 = a2;
|
|
if ( v47 < 10 )
|
|
v17 = (int)"believes that some deception is necessary in relationships with others";
|
|
else
|
|
v17 = (int)"is not straightforward when dealing with others";
|
|
goto LABEL_364;
|
|
case 20:
|
|
v48 = *(_WORD *)(a1 + 2 * v13 + 548);
|
|
if ( v48 > 90 )
|
|
{
|
|
v17 = (int)"is truly fulfilled by assisting those in need";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v48 > 75 )
|
|
{
|
|
v17 = (int)"finds helping others very rewarding";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v48 > 60 )
|
|
{
|
|
v17 = (int)"finds helping others rewarding";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v48 >= 25 )
|
|
{
|
|
v49 = sub_41EC90("does not go out of ", v14);
|
|
LOBYTE(v142) = 16;
|
|
v50 = sub_416630(v49, &v122);
|
|
LOBYTE(v142) = 17;
|
|
sub_40FF20(v50, 0);
|
|
sub_4099A0(&v114);
|
|
LOBYTE(v142) = 4;
|
|
sub_4099A0(&v91);
|
|
goto LABEL_365;
|
|
}
|
|
if ( v48 >= 10 )
|
|
{
|
|
v17 = (int)"dislikes helping others";
|
|
goto LABEL_363;
|
|
}
|
|
v51 = sub_41EC90("views helping others as an imposition on ", (int)&v122);
|
|
LOBYTE(v142) = 18;
|
|
v52 = sub_416630(v51, &v122);
|
|
LOBYTE(v142) = 19;
|
|
sub_40FF20(v52, 0);
|
|
sub_4099A0(&v92);
|
|
LOBYTE(v142) = 4;
|
|
sub_4099A0(&v93);
|
|
goto LABEL_365;
|
|
case 21:
|
|
v53 = *(_WORD *)(a1 + 2 * v13 + 548);
|
|
if ( v53 > 90 )
|
|
{
|
|
v54 = sub_41EC90("sacrifices ", v14);
|
|
LOBYTE(v142) = 20;
|
|
v55 = sub_416630(v54, &v122);
|
|
LOBYTE(v142) = 21;
|
|
sub_40FF20(v55, 0);
|
|
sub_4099A0(&v94);
|
|
LOBYTE(v142) = 4;
|
|
sub_4099A0(&v96);
|
|
goto LABEL_365;
|
|
}
|
|
if ( v53 > 75 )
|
|
{
|
|
v17 = (int)"dislikes confrontations";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v53 > 60 )
|
|
{
|
|
v17 = (int)"is willing to compromise with others";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v53 >= 25 )
|
|
{
|
|
v17 = (int)"doesn't like to compromise with others";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v53 >= 10 )
|
|
{
|
|
v17 = (int)"would rather intimidate others than compromise with them";
|
|
goto LABEL_363;
|
|
}
|
|
v56 = sub_41EC90("would never deny ", v14);
|
|
LOBYTE(v142) = 22;
|
|
v57 = sub_416630(v56, &v122);
|
|
LOBYTE(v142) = 23;
|
|
sub_40FF20(v57, 0);
|
|
sub_4099A0(&v98);
|
|
LOBYTE(v142) = 4;
|
|
sub_4099A0(&v100);
|
|
goto LABEL_365;
|
|
case 22:
|
|
v58 = *(_WORD *)(a1 + 2 * v13 + 548);
|
|
if ( v58 > 90 )
|
|
{
|
|
v17 = (int)"would never claim to be better than somebody else";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v58 > 75 )
|
|
{
|
|
v17 = (int)"finds immodesty distasteful";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v58 > 60 )
|
|
{
|
|
v17 = (int)"is modest";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v58 >= 25 )
|
|
{
|
|
v17 = (int)"is immodest";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v58 < 10 )
|
|
{
|
|
v61 = sub_41EC90("would never shy away from an opportunity to say ", v14);
|
|
LOBYTE(v142) = 26;
|
|
v62 = sub_416630(v61, &v137);
|
|
LOBYTE(v142) = 27;
|
|
sub_40FF20(v62, 0);
|
|
sub_4099A0(&v106);
|
|
LOBYTE(v142) = 4;
|
|
sub_4099A0(&v109);
|
|
}
|
|
else
|
|
{
|
|
v59 = sub_41EC90("is very willing to compare ", (int)&v133);
|
|
LOBYTE(v142) = 24;
|
|
v60 = sub_416630(v59, &v133);
|
|
LOBYTE(v142) = 25;
|
|
sub_40FF20(v60, 0);
|
|
sub_4099A0(&v102);
|
|
LOBYTE(v142) = 4;
|
|
sub_4099A0(&v104);
|
|
}
|
|
goto LABEL_365;
|
|
case 23:
|
|
v63 = *(_WORD *)(a1 + 2 * v13 + 548);
|
|
if ( v63 > 90 )
|
|
{
|
|
v17 = (int)"is incredibly compassionate and feels the pain of others";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v63 > 75 )
|
|
{
|
|
v17 = (int)"is easily moved to pity";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v63 > 60 )
|
|
{
|
|
v17 = (int)"is compassionate";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v63 >= 25 )
|
|
{
|
|
v17 = (int)"is not easily moved to pity";
|
|
goto LABEL_363;
|
|
}
|
|
v89 = a2;
|
|
if ( v63 < 10 )
|
|
v17 = (int)"would never let an objective judgement be tempered by mercy or pity";
|
|
else
|
|
v17 = (int)"is not affected by the suffering of others";
|
|
goto LABEL_364;
|
|
case 24:
|
|
v64 = *(_WORD *)(a1 + 2 * v13 + 548);
|
|
if ( v64 > 90 )
|
|
{
|
|
v17 = (int)"is incredibly confident";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v64 > 75 )
|
|
{
|
|
v17 = (int)"is very confident";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v64 > 60 )
|
|
{
|
|
v17 = (int)"is confident";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v64 >= 25 )
|
|
{
|
|
v17 = (int)"lacks confidence";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v64 >= 10 )
|
|
{
|
|
v17 = (int)"does not feel effective in life";
|
|
goto LABEL_363;
|
|
}
|
|
v65 = sub_41EC90("always feels as if ", v14);
|
|
LOBYTE(v142) = 28;
|
|
v66 = sub_416630(v65, &v137);
|
|
LOBYTE(v142) = 29;
|
|
v67 = sub_4166E0(v66, &v122);
|
|
LOBYTE(v142) = 30;
|
|
v68 = sub_416630(v67, v69);
|
|
LOBYTE(v142) = 31;
|
|
sub_40FF20(v68, 0);
|
|
sub_4099A0(&v111);
|
|
sub_4099A0(&v113);
|
|
sub_4099A0(&v115);
|
|
LOBYTE(v142) = 4;
|
|
sub_4099A0(&v117);
|
|
goto LABEL_365;
|
|
case 25:
|
|
v70 = *(_WORD *)(a1 + 2 * v13 + 548);
|
|
if ( v70 > 90 )
|
|
{
|
|
v17 = (int)"loves to make lists and keep schedules";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v70 > 75 )
|
|
{
|
|
v17 = (int)"tries to live a well-organized life";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v70 > 60 )
|
|
{
|
|
v17 = (int)"is organized";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v70 >= 25 )
|
|
{
|
|
v17 = (int)"is disorganized";
|
|
goto LABEL_363;
|
|
}
|
|
v89 = a2;
|
|
if ( v70 < 10 )
|
|
v17 = (int)"is completely disorganized";
|
|
else
|
|
v17 = (int)"is very disorganized";
|
|
goto LABEL_364;
|
|
case 26:
|
|
v71 = *(_WORD *)(a1 + 2 * v13 + 548);
|
|
if ( v71 > 90 )
|
|
{
|
|
v17 = (int)"has a profound sense of duty and obligation";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v71 > 75 )
|
|
{
|
|
v17 = (int)"has a strong sense of duty";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v71 > 60 )
|
|
{
|
|
v17 = (int)"has a sense of duty";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v71 >= 25 )
|
|
{
|
|
v17 = (int)"finds rules confining";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v71 >= 10 )
|
|
{
|
|
v17 = (int)"dislikes contracts and regulations";
|
|
goto LABEL_363;
|
|
}
|
|
v72 = sub_41EC90("hates rules, contracts and other confining elements in ", v14);
|
|
LOBYTE(v142) = 32;
|
|
v73 = sub_416630(v72, &v122);
|
|
LOBYTE(v142) = 33;
|
|
sub_40FF20(v73, 0);
|
|
sub_4099A0(&v119);
|
|
LOBYTE(v142) = 4;
|
|
sub_4099A0(&v121);
|
|
goto LABEL_365;
|
|
case 27:
|
|
v74 = *(_WORD *)(a1 + 2 * v13 + 548);
|
|
if ( v74 > 90 )
|
|
{
|
|
v17 = (int)"constantly strives for perfection";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v74 > 75 )
|
|
{
|
|
v17 = (int)"thinks it is incredibly important to strive for excellence";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v74 > 60 )
|
|
{
|
|
v17 = (int)"strives for excellence";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v74 >= 25 )
|
|
{
|
|
v75 = sub_41EC90("doesn't go out of ", v14);
|
|
LOBYTE(v142) = 34;
|
|
v76 = sub_416630(v75, &v122);
|
|
LOBYTE(v142) = 35;
|
|
sub_40FF20(v76, 0);
|
|
sub_4099A0(&v108);
|
|
LOBYTE(v142) = 4;
|
|
sub_4099A0(&v107);
|
|
goto LABEL_365;
|
|
}
|
|
v89 = a2;
|
|
if ( v74 < 10 )
|
|
v17 = (int)"does the bare minimum necessary to accomplish the task at hand";
|
|
else
|
|
v17 = (int)"very rarely does more work than necessary";
|
|
goto LABEL_364;
|
|
case 28:
|
|
v77 = *(_WORD *)(a1 + 2 * v13 + 548);
|
|
if ( v77 > 90 )
|
|
{
|
|
v17 = (int)"will persist in the face of any difficulty until the task is complete";
|
|
LABEL_363:
|
|
v89 = a2;
|
|
goto LABEL_364;
|
|
}
|
|
if ( v77 > 75 )
|
|
{
|
|
v17 = (int)"possesses great willpower";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v77 > 60 )
|
|
{
|
|
v17 = (int)"is self-disciplined";
|
|
goto LABEL_363;
|
|
}
|
|
if ( v77 >= 25 )
|
|
{
|
|
v17 = (int)"is occasionally given to procrastination";
|
|
goto LABEL_363;
|
|
}
|
|
v89 = a2;
|
|
if ( v77 < 10 )
|
|
v17 = (int)"rarely completes tasks and is often overcome by distractions";
|
|
else
|
|
v17 = (int)"has very little self-discipline";
|
|
LABEL_364:
|
|
sub_40FE10(v15, (void *)v14, v89);
|
|
LABEL_365:
|
|
sub_410010(a2, v14, ". ", 3u);
|
|
v11 = v90;
|
|
v3 = 0;
|
|
break;
|
|
case 29:
|
|
v78 = *(_WORD *)(a1 + 2 * v13 + 548);
|
|
if ( v78 <= 90 )
|
|
{
|
|
if ( v78 <= 75 )
|
|
{
|
|
if ( v78 <= 60 )
|
|
{
|
|
if ( v78 < 25 )
|
|
{
|
|
v17 = (int)"acts impulsively";
|
|
if ( v78 < 10 )
|
|
v17 = (int)"always acts without considering alternatives or thinking through possibilities";
|
|
}
|
|
else
|
|
{
|
|
v17 = (int)"often does the first thing that comes to mind";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
v17 = (int)"takes time when making decisions";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
v17 = (int)"is extremely cautious";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
v17 = (int)"thinks through every alternative and its consequences before acting";
|
|
}
|
|
goto LABEL_363;
|
|
default:
|
|
goto LABEL_365;
|
|
}
|
|
}
|
|
++v11;
|
|
v90 = v11;
|
|
}
|
|
while ( (_WORD)v11 < 30 );
|
|
if ( v129 >= 0x10 )
|
|
operator delete(v127);
|
|
v129 = 15;
|
|
v128 = v3;
|
|
LOBYTE(v127) = 0;
|
|
if ( v136 >= 0x10 )
|
|
operator delete(v134);
|
|
v136 = 15;
|
|
v135 = v3;
|
|
LOBYTE(v134) = 0;
|
|
if ( v125 >= 0x10 )
|
|
operator delete(v123);
|
|
v125 = 15;
|
|
v124 = v3;
|
|
LOBYTE(v123) = 0;
|
|
if ( v132 >= 0x10 )
|
|
operator delete(v130);
|
|
v132 = 15;
|
|
v131 = v3;
|
|
LOBYTE(v130) = 0;
|
|
if ( v140 >= 0x10 )
|
|
operator delete(v138);
|
|
return sub_9FD1AA(v90);
|
|
}
|
|
-->
|
|
====================================================================
|
|
P R O F E S S I O N S
|
|
====================================================================
|
|
TODO: Parse this and turn it into Profession tags.
|
|
Cross-reference with Memory-40d.xml
|
|
<Profession can_assign_labors="true" is_military="false" name="MINER">0</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="WOODWORKER">1</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="CARPENTER">2</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="BOWYER">3</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="WOODCUTTER">4</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="STONEWORKER">5</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="ENGRAVER">6</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="MASON">7</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="RANGER">8</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="ANIMAL_CARETAKER">9</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="ANIMAL_TRAINER">10</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="HUNTER">11</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="TRAPPER">12</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="ANIMAL_DISSECTOR">13</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="METALSMITH">14</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="FURNACE_OPERATOR">15</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="WEAPONSMITH">16</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="ARMORER">17</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="BLACKSMITH">18</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="METALCRAFTER">19</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="JEWELER">20</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="GEM_CUTTER">21</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="GEM_SETTER">22</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="CRAFTSMAN">23</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="WOODCRAFTER">24</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="STONECRAFTER">25</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="LEATHERWORKER">26</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="BONE_CARVER">27</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="WEAVER">28</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="CLOTHIER">29</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="GLASSMAKER">30</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="STRAND_EXTRACTOR">31</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="FISHERY_WORKER">32</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="FISHERMAN">33</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="FISH_DISSECTOR">34</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="FISH_CLEANER">35</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="FARMER">36</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="CHEESE_MAKER">37</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="MILKER">38</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="COOK">39</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="THRESHER">40</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="MILLER">41</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="BUTCHER">42</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="TANNER">43</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="DYER">44</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="PLANTER">45</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="HERBALIST">46</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="BREWER">47</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="SOAP_MAKER">48</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="POTASH_MAKER">49</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="LYE_MAKER">50</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="WOOD_BURNER">51</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="ENGINEER">52</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="MECHANIC">53</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="SIEGE_ENGINEER">54</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="SIEGE_OPERATOR">55</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="PUMP_OPERATOR">56</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="CLERK">57</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="ADMINISTRATOR">58</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="TRADER">59</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="ARCHITECT">60</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="ALCHEMIST">61</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="DOCTOR">62</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="DIAGNOSER">63</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="BONE_SETTER">64</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="SUTURER">65</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="SURGEON">66</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="MERCHANT">67</Profession>
|
|
<Profession can_assign_labors="true" is_military="true" name="HAMMERMAN">68</Profession>
|
|
<Profession can_assign_labors="true" is_military="true" name="MASTER_HAMMERMAN">69</Profession>
|
|
<Profession can_assign_labors="true" is_military="true" name="SPEARMAN">70</Profession>
|
|
<Profession can_assign_labors="true" is_military="true" name="MASTER_SPEARMAN">71</Profession>
|
|
<Profession can_assign_labors="true" is_military="true" name="CROSSBOWMAN">72</Profession>
|
|
<Profession can_assign_labors="true" is_military="true" name="MASTER_CROSSBOWMAN">73</Profession>
|
|
<Profession can_assign_labors="true" is_military="true" name="WRESTLER">74</Profession>
|
|
<Profession can_assign_labors="true" is_military="true" name="MASTER_WRESTLER">75</Profession>
|
|
<Profession can_assign_labors="true" is_military="true" name="AXEMAN">76</Profession>
|
|
<Profession can_assign_labors="true" is_military="true" name="MASTER_AXEMAN">77</Profession>
|
|
<Profession can_assign_labors="true" is_military="true" name="SWORDSMAN">78</Profession>
|
|
<Profession can_assign_labors="true" is_military="true" name="MASTER_SWORDSMAN">79</Profession>
|
|
<Profession can_assign_labors="true" is_military="true" name="MACEMAN">80</Profession>
|
|
<Profession can_assign_labors="true" is_military="true" name="MASTER_MACEMAN">81</Profession>
|
|
<Profession can_assign_labors="true" is_military="true" name="PIKEMAN">82</Profession>
|
|
<Profession can_assign_labors="true" is_military="true" name="MASTER_PIKEMAN">83</Profession>
|
|
<Profession can_assign_labors="true" is_military="true" name="BOWMAN">84</Profession>
|
|
<Profession can_assign_labors="true" is_military="true" name="MASTER_BOWMAN">85</Profession>
|
|
<Profession can_assign_labors="true" is_military="true" name="BLOWGUNMAN">86</Profession>
|
|
<Profession can_assign_labors="true" is_military="true" name="MASTER_BLOWGUNMAN">87</Profession>
|
|
<Profession can_assign_labors="true" is_military="true" name="RECRUIT">90</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="TRAINED_HUNTER">91</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="TRAINED_WAR">92</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="MASTER_THIEF">93</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="THIEF">94</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="STANDARD">95</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="CHILD">96</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="BABY">97</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="DRUNK">98</Profession>
|
|
<Profession can_assign_labors="true" is_military="true" name="LASHER">88</Profession>
|
|
<Profession can_assign_labors="true" is_military="true" name="MASTER_LASHER">89</Profession>
|
|
<Profession can_assign_labors="true" is_military="false" name="None">90</Profession>
|
|
====================================================================
|
|
J O B S
|
|
====================================================================
|
|
TODO: Parse this and turn it into Job tags
|
|
<!--
|
|
int __fastcall Job_descriptions(int a1, int a2, int a3, __int16 a4, __int16 a5, __int16 a6, int a7, int a8, int a9, char a10)
|
|
{
|
|
int v10; // ecx@1
|
|
int v11; // ebx@1
|
|
int v12; // esi@1
|
|
__int16 v13; // sp@1
|
|
void *v14; // edx@2
|
|
int v15; // eax@64
|
|
void *v16; // edx@71
|
|
void *v17; // edx@82
|
|
int v18; // ecx@84
|
|
char v19; // al@94
|
|
char v20; // al@123
|
|
void *v21; // edx@132
|
|
int v22; // ecx@132
|
|
char v23; // al@132
|
|
int v24; // ecx@134
|
|
int v25; // eax@134
|
|
int v26; // ecx@134
|
|
void *v27; // edx@136
|
|
int v28; // ecx@136
|
|
char v29; // al@136
|
|
int v30; // ecx@138
|
|
int v31; // eax@138
|
|
int v32; // ecx@138
|
|
void *v33; // edx@139
|
|
int v34; // ecx@139
|
|
char v35; // al@139
|
|
int v36; // ecx@141
|
|
int v37; // eax@141
|
|
int v38; // ecx@141
|
|
void *v39; // edx@142
|
|
char v41; // al@142
|
|
char v42; // al@144
|
|
void *v43; // edx@147
|
|
char v45; // al@147
|
|
void *v46; // edx@157
|
|
char v48; // al@157
|
|
char v49; // al@161
|
|
void *v50; // edx@164
|
|
int v51; // ecx@164
|
|
char v52; // al@164
|
|
void *v53; // edx@174
|
|
char v55; // al@174
|
|
void *v56; // edx@177
|
|
char v58; // al@177
|
|
void *v59; // edx@180
|
|
char v61; // al@180
|
|
void *v62; // edx@183
|
|
char v64; // al@183
|
|
void *v65; // edx@186
|
|
char v67; // al@186
|
|
char v68; // al@188
|
|
void *v69; // edx@191
|
|
char v71; // al@191
|
|
void *v72; // edx@197
|
|
int v73; // ecx@197
|
|
char v74; // al@197
|
|
int v75; // ecx@199
|
|
int v76; // eax@199
|
|
int v77; // ecx@199
|
|
void *v78; // edx@200
|
|
int v79; // ecx@200
|
|
char v80; // al@200
|
|
int v81; // ecx@202
|
|
int v82; // eax@202
|
|
int v83; // ecx@202
|
|
void *v84; // edx@209
|
|
int v85; // ecx@209
|
|
char v86; // al@209
|
|
int v87; // ecx@211
|
|
int v88; // eax@211
|
|
int v89; // ecx@211
|
|
void *v90; // edx@212
|
|
int v91; // ecx@212
|
|
char v92; // al@212
|
|
int v93; // ecx@214
|
|
int v94; // eax@214
|
|
int v95; // ecx@214
|
|
void *v96; // edx@215
|
|
char v98; // al@215
|
|
int v99; // ecx@218
|
|
int v100; // eax@218
|
|
int v101; // ecx@218
|
|
void *v102; // edx@219
|
|
int v103; // ecx@219
|
|
char v104; // al@219
|
|
int v105; // ecx@221
|
|
int v106; // eax@221
|
|
int v107; // ecx@221
|
|
void *v108; // edx@225
|
|
int v109; // ecx@225
|
|
char v110; // al@225
|
|
int v111; // ecx@227
|
|
int v112; // eax@228
|
|
int v113; // ecx@228
|
|
int v114; // ecx@229
|
|
int v115; // eax@229
|
|
int v116; // ecx@229
|
|
int v117; // eax@249
|
|
void *v119; // edx@260
|
|
char *v121; // [sp-8h] [bp-68h]@65
|
|
int v122; // [sp-4h] [bp-64h]@65
|
|
int v123; // [sp-4h] [bp-64h]@94
|
|
int v124; // [sp+14h] [bp-4Ch]@1
|
|
char v125; // [sp+18h] [bp-48h]@69
|
|
void *v126; // [sp+1Ch] [bp-44h]@1
|
|
int v127; // [sp+2Ch] [bp-34h]@1
|
|
unsigned int v128; // [sp+30h] [bp-30h]@1
|
|
char v129; // [sp+34h] [bp-2Ch]@65
|
|
char v130; // [sp+38h] [bp-28h]@65
|
|
int v131; // [sp+48h] [bp-18h]@65
|
|
int v132; // [sp+4Ch] [bp-14h]@65
|
|
unsigned int v133; // [sp+50h] [bp-10h]@1
|
|
int v134; // [sp+5Ch] [bp-4h]@1
|
|
|
|
v133 = (unsigned int)&v124 ^ dword_AE71F4;
|
|
v11 = a1;
|
|
v124 = a8;
|
|
v12 = a2;
|
|
v128 = 15;
|
|
v127 = 0;
|
|
LOBYTE(v126) = 0;
|
|
v134 = 0;
|
|
sub_4099E0(a3, 0, -1);
|
|
switch ( v13 )
|
|
{
|
|
case 68:
|
|
v14 = "Construct Building";
|
|
goto LABEL_330;
|
|
case 89:
|
|
v14 = "Destroy Building";
|
|
goto LABEL_330;
|
|
case 105:
|
|
v14 = "Butcher an Animal";
|
|
goto LABEL_330;
|
|
case 32:
|
|
v14 = "Catch Live Fish";
|
|
goto LABEL_330;
|
|
case 31:
|
|
v14 = "Catch Live Land Animal";
|
|
goto LABEL_330;
|
|
case 106:
|
|
v14 = "Prepare a Raw Fish";
|
|
goto LABEL_330;
|
|
case 107:
|
|
v14 = "Mill Plants";
|
|
goto LABEL_330;
|
|
case 111:
|
|
v14 = "Process Plants";
|
|
goto LABEL_330;
|
|
case 109:
|
|
v14 = "Milk Creature";
|
|
goto LABEL_330;
|
|
case 110:
|
|
v14 = "Make Cheese";
|
|
goto LABEL_330;
|
|
case 113:
|
|
v14 = "Process Plants (Vial)";
|
|
goto LABEL_330;
|
|
case 112:
|
|
v14 = "Process Plants (Bag)";
|
|
goto LABEL_330;
|
|
case 114:
|
|
v14 = "Process Plants (Barrel)";
|
|
goto LABEL_330;
|
|
case 188:
|
|
v14 = "Make Lye";
|
|
goto LABEL_330;
|
|
case 189:
|
|
v14 = "Make Potash From Lye";
|
|
goto LABEL_330;
|
|
case 191:
|
|
v14 = "Make Potash From Ash";
|
|
goto LABEL_330;
|
|
case 115:
|
|
if ( (signed __int16)v11 == 2 )
|
|
{
|
|
v14 = "Prepare Easy Meal";
|
|
}
|
|
else
|
|
{
|
|
if ( (signed __int16)v11 == 3 )
|
|
{
|
|
v14 = "Prepare Fine Meal";
|
|
}
|
|
else
|
|
{
|
|
if ( (signed __int16)v11 != 4 )
|
|
goto LABEL_332;
|
|
v14 = "Prepare Lavish Meal";
|
|
}
|
|
}
|
|
goto LABEL_330;
|
|
case 150:
|
|
v14 = "Brew Drink";
|
|
goto LABEL_330;
|
|
case 151:
|
|
v14 = "Extract from Plants";
|
|
goto LABEL_330;
|
|
case 152:
|
|
v14 = "Extract from Raw Fish";
|
|
goto LABEL_330;
|
|
case 153:
|
|
v14 = "Extract from Land Animal";
|
|
goto LABEL_330;
|
|
case 163:
|
|
v14 = "Handle Large Creature";
|
|
goto LABEL_330;
|
|
case 158:
|
|
v14 = "Unchain Pet";
|
|
goto LABEL_330;
|
|
case 159:
|
|
v14 = "Release Large Creature";
|
|
goto LABEL_330;
|
|
case 160:
|
|
v14 = "Release Pet";
|
|
goto LABEL_330;
|
|
case 161:
|
|
v14 = "Release Small Creature";
|
|
goto LABEL_330;
|
|
case 162:
|
|
v14 = "Handle Small Creature";
|
|
goto LABEL_330;
|
|
case 182:
|
|
v14 = "Recover Pet";
|
|
goto LABEL_330;
|
|
case 164:
|
|
v14 = "Cage Large Creature";
|
|
goto LABEL_330;
|
|
case 166:
|
|
v14 = &dword_A6BEFC;
|
|
goto LABEL_330;
|
|
case 167:
|
|
v14 = &dword_A6BF0C;
|
|
goto LABEL_330;
|
|
case 168:
|
|
v14 = &dword_A6BF20;
|
|
goto LABEL_330;
|
|
case 212:
|
|
v14 = &dword_A6BF34;
|
|
goto LABEL_330;
|
|
case 211:
|
|
v14 = &dword_A6BF40;
|
|
goto LABEL_330;
|
|
case 169:
|
|
v14 = &dword_A6BF50;
|
|
goto LABEL_330;
|
|
case 170:
|
|
v14 = &dword_A6BF5C;
|
|
goto LABEL_330;
|
|
case 171:
|
|
v14 = "Surgery";
|
|
goto LABEL_330;
|
|
case 172:
|
|
v14 = &dword_A6BF6C;
|
|
goto LABEL_330;
|
|
case 173:
|
|
v14 = &dword_A6BF74;
|
|
goto LABEL_330;
|
|
case 174:
|
|
v14 = &dword_A6BF80;
|
|
goto LABEL_330;
|
|
case 165:
|
|
v14 = "Cage Small Creature";
|
|
goto LABEL_330;
|
|
case 183:
|
|
v14 = "Pit/Pond Large Animal";
|
|
goto LABEL_330;
|
|
case 184:
|
|
v14 = "Pit/Pond Small Animal";
|
|
goto LABEL_330;
|
|
case 175:
|
|
v14 = "Drain Aquarium";
|
|
goto LABEL_330;
|
|
case 176:
|
|
v14 = "Fill Aquarium";
|
|
goto LABEL_330;
|
|
case 177:
|
|
v14 = "Fill Pond";
|
|
goto LABEL_330;
|
|
case 178:
|
|
case 180:
|
|
v14 = &dword_A6BEE4;
|
|
goto LABEL_330;
|
|
case 179:
|
|
case 181:
|
|
v14 = &dword_A6BEF0;
|
|
goto LABEL_330;
|
|
case 197:
|
|
v14 = "Manage Work Orders";
|
|
goto LABEL_330;
|
|
case 198:
|
|
v14 = "Update Stockpile Records";
|
|
goto LABEL_330;
|
|
case 205:
|
|
v14 = "Upgrade Squad Equipment";
|
|
goto LABEL_330;
|
|
case 206:
|
|
v14 = "Prepare Equipment Manifests";
|
|
goto LABEL_330;
|
|
case 199:
|
|
v14 = "Trade at Depot";
|
|
goto LABEL_330;
|
|
case 156:
|
|
v14 = "Chain Animal";
|
|
goto LABEL_330;
|
|
case 185:
|
|
v14 = "Slaughter Animal";
|
|
goto LABEL_330;
|
|
case 157:
|
|
v14 = "Unchain Animal";
|
|
goto LABEL_330;
|
|
case 155:
|
|
sub_40FE10(v10, "Tame ", a3);
|
|
if ( !v12 )
|
|
{
|
|
v14 = "a Large Animal";
|
|
goto LABEL_330;
|
|
}
|
|
v15 = sub_78E660();
|
|
if ( !v15 )
|
|
goto LABEL_332;
|
|
v132 = 15;
|
|
v131 = 0;
|
|
v130 = 0;
|
|
LOBYTE(v134) = 1;
|
|
sub_910740(v15, 0);
|
|
v122 = 0;
|
|
v121 = &v129;
|
|
goto LABEL_66;
|
|
case 154:
|
|
v14 = "Tame a Small Animal";
|
|
goto LABEL_330;
|
|
case 83:
|
|
sub_40FE10(v10, "Make ", a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
v14 = " Crafts";
|
|
goto LABEL_330;
|
|
case 84:
|
|
sub_40FE10(v10, "Mint ", a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
v14 = " Coins";
|
|
goto LABEL_330;
|
|
case 85:
|
|
v16 = "Cut ";
|
|
goto LABEL_72;
|
|
case 86:
|
|
sub_40FE10(v10, "Cut ", a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 0, 0);
|
|
sub_40FF20(&v125, 0);
|
|
goto LABEL_332;
|
|
case 132:
|
|
sub_40FE10(v10, "Decorate With ", a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 0, 0);
|
|
sub_40FF20(&v125, 0);
|
|
goto LABEL_332;
|
|
case 104:
|
|
v16 = "Stud With ";
|
|
LABEL_72:
|
|
sub_40FE10(v10, v16, a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 0, 0);
|
|
sub_40FF20(&v125, 0);
|
|
goto LABEL_332;
|
|
case 87:
|
|
sub_40FE10(v10, "Encrust ", a3);
|
|
if ( a9 & 0x400 )
|
|
sub_40FE10(v10, "Finished Goods", a3);
|
|
if ( a9 & 4 )
|
|
sub_40FE10(v10, "Furniture", a3);
|
|
if ( a9 & 0x40 )
|
|
sub_40FE10(v10, "Ammo", a3);
|
|
v17 = " With ";
|
|
goto LABEL_83;
|
|
case 88:
|
|
sub_40FE10(v10, "Encrust ", a3);
|
|
if ( a9 & 0x400 )
|
|
sub_40FE10(v18, "Finished Goods", a3);
|
|
if ( a9 & 4 )
|
|
sub_40FE10(v18, "Furniture", a3);
|
|
if ( a9 & 0x40 )
|
|
sub_40FE10(v18, "Ammo", a3);
|
|
sub_40FE10(v18, " With ", a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 0, 0);
|
|
sub_40FF20(&v125, 0);
|
|
goto LABEL_332;
|
|
case 22:
|
|
v14 = "Collect Sand";
|
|
goto LABEL_330;
|
|
case 81:
|
|
sub_40FE10(v10, "Construct ", a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
v14 = " Blocks";
|
|
goto LABEL_330;
|
|
case 82:
|
|
v17 = "Make Raw ";
|
|
LABEL_83:
|
|
sub_40FE10(v10, v17, a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 0, 0);
|
|
sub_40FF20(&v125, 0);
|
|
goto LABEL_332;
|
|
case 69:
|
|
sub_40FE10(v10, "Construct ", a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
v19 = sub_9B0C00(49);
|
|
v123 = a3;
|
|
if ( v19 )
|
|
v14 = " Portal";
|
|
else
|
|
v14 = " Door";
|
|
goto LABEL_331;
|
|
case 70:
|
|
sub_40FE10(v10, "Construct ", a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
v14 = " Floodgate";
|
|
goto LABEL_330;
|
|
case 200:
|
|
sub_40FE10(v10, "Construct ", a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
v14 = " Hatch Cover";
|
|
goto LABEL_330;
|
|
case 201:
|
|
sub_40FE10(v10, "Construct ", a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
v14 = " Grate";
|
|
goto LABEL_330;
|
|
case 74:
|
|
sub_40FE10(v10, "Construct ", a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
v14 = " Table";
|
|
goto LABEL_330;
|
|
case 209:
|
|
v14 = "Construct Traction Bench";
|
|
goto LABEL_330;
|
|
case 207:
|
|
sub_40FE10(v10, "Construct ", a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
v14 = " Splint";
|
|
goto LABEL_330;
|
|
case 208:
|
|
sub_40FE10(v10, "Construct ", a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
v14 = " Crutch";
|
|
goto LABEL_330;
|
|
case 79:
|
|
sub_40FE10(v10, "Construct ", a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
v14 = " Cabinet";
|
|
goto LABEL_330;
|
|
case 78:
|
|
sub_40FE10(v10, "Construct ", a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
v14 = " Weapon Rack";
|
|
goto LABEL_330;
|
|
case 77:
|
|
sub_40FE10(v10, "Construct ", a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
v14 = " Armor Stand";
|
|
goto LABEL_330;
|
|
case 76:
|
|
sub_40FE10(v10, "Construct ", a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
v14 = " Bin";
|
|
goto LABEL_330;
|
|
case 75:
|
|
sub_40FE10(v10, "Construct ", a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
if ( (unsigned __int8)sub_9B0C00(49) )
|
|
{
|
|
v14 = " Box";
|
|
}
|
|
else
|
|
{
|
|
if ( (_WORD)v11 || (unsigned __int8)sub_9B0C00(47) )
|
|
{
|
|
if ( a10 & 2 )
|
|
{
|
|
v14 = " Chest";
|
|
}
|
|
else
|
|
{
|
|
v10 = 419;
|
|
if ( (_WORD)v11 >= 419 && (_WORD)v11 <= 618 || a10 & 0x1D )
|
|
v14 = " Bag";
|
|
else
|
|
v14 = " Chest";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
v14 = " Coffer";
|
|
}
|
|
}
|
|
goto LABEL_330;
|
|
case 73:
|
|
sub_40FE10(v10, "Construct ", a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
if ( (_WORD)v11 >= 419 && (_WORD)v11 <= 618 || a10 & 3 )
|
|
{
|
|
v14 = " Casket";
|
|
goto LABEL_330;
|
|
}
|
|
v20 = sub_9B0C00(47);
|
|
v123 = a3;
|
|
if ( v20 )
|
|
v14 = " Sarcophagus";
|
|
else
|
|
v14 = " Coffin";
|
|
goto LABEL_331;
|
|
case 72:
|
|
sub_40FE10(v10, "Construct ", a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
if ( (_WORD)v11 >= 419 && (v10 = 618, (_WORD)v11 <= 618) || a10 & 3 )
|
|
v14 = " Chair";
|
|
else
|
|
v14 = " Throne";
|
|
goto LABEL_330;
|
|
case 117:
|
|
v23 = sub_9B0C00(47);
|
|
v21 = "Forge ";
|
|
if ( !v23 )
|
|
v21 = "Make ";
|
|
sub_40FE10(v22, v21, a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
sub_40FE10(v24, &word_A4905C, a3);
|
|
v25 = sub_53F2A0(v26);
|
|
sub_40FF20(*(_DWORD *)v25 + 36, 0);
|
|
goto LABEL_332;
|
|
case 130:
|
|
v14 = "Make Totem";
|
|
goto LABEL_330;
|
|
case 118:
|
|
v29 = sub_9B0C00(47);
|
|
v27 = "Forge ";
|
|
if ( !v29 )
|
|
v27 = "Make ";
|
|
sub_40FE10(v28, v27, a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
sub_40FE10(v30, &word_A4905C, a3);
|
|
v31 = sub_53F2A0(v32);
|
|
sub_40FF20(*(_DWORD *)v31 + 36, 0);
|
|
goto LABEL_332;
|
|
case 119:
|
|
v35 = sub_9B0C00(47);
|
|
v33 = "Forge ";
|
|
if ( !v35 )
|
|
v33 = "Make ";
|
|
sub_40FE10(v34, v33, a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
sub_40FE10(v36, &word_A4905C, a3);
|
|
v37 = sub_53F2A0(v38);
|
|
sub_40FF20(*(_DWORD *)v37 + 36, 0);
|
|
goto LABEL_332;
|
|
case 120:
|
|
v41 = sub_9B0C00(47);
|
|
v39 = "Forge ";
|
|
if ( !v41 )
|
|
v39 = "Make ";
|
|
sub_40FE10(v10, v39, a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
v42 = sub_9B0C00(49);
|
|
v123 = a3;
|
|
if ( v42 )
|
|
v14 = " Terrarium";
|
|
else
|
|
v14 = " Cage";
|
|
goto LABEL_331;
|
|
case 121:
|
|
v45 = sub_9B0C00(47);
|
|
v43 = "Forge ";
|
|
if ( !v45 )
|
|
v43 = "Make ";
|
|
sub_40FE10(v10, v43, a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
if ( a10 & 2 )
|
|
{
|
|
v14 = " Chain";
|
|
}
|
|
else
|
|
{
|
|
if ( a10 & 8 || (v10 = 419, (_WORD)v11 >= 419) && (_WORD)v11 <= 618 || a10 & 0x15 )
|
|
v14 = " Rope";
|
|
else
|
|
v14 = " Chain";
|
|
}
|
|
goto LABEL_330;
|
|
case 122:
|
|
v48 = sub_9B0C00(47);
|
|
v46 = "Forge ";
|
|
if ( !v48 )
|
|
v46 = "Make ";
|
|
sub_40FE10(v10, v46, a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
if ( a10 & 0x10 )
|
|
{
|
|
v14 = " Waterskin";
|
|
goto LABEL_330;
|
|
}
|
|
v49 = sub_9B0C00(49);
|
|
v123 = a3;
|
|
if ( v49 )
|
|
v14 = " Vial";
|
|
else
|
|
v14 = " Flask";
|
|
goto LABEL_331;
|
|
case 123:
|
|
v52 = sub_9B0C00(47);
|
|
v50 = "Forge ";
|
|
if ( !v52 )
|
|
v50 = "Make ";
|
|
sub_40FE10(v51, v50, a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
v10 = 419;
|
|
if ( (_WORD)v11 >= 419 && (_WORD)v11 <= 618 || a10 & 3 )
|
|
{
|
|
v14 = " Cup";
|
|
}
|
|
else
|
|
{
|
|
if ( (_WORD)v11 || (unsigned __int8)sub_9B0C00(47) )
|
|
v14 = " Goblet";
|
|
else
|
|
v14 = " Mug";
|
|
}
|
|
goto LABEL_330;
|
|
case 124:
|
|
v55 = sub_9B0C00(47);
|
|
v53 = "Forge ";
|
|
if ( !v55 )
|
|
v53 = "Make ";
|
|
sub_40FE10(v10, v53, a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
v14 = " Instrument";
|
|
goto LABEL_330;
|
|
case 125:
|
|
v58 = sub_9B0C00(47);
|
|
v56 = "Forge ";
|
|
if ( !v58 )
|
|
v56 = "Make ";
|
|
sub_40FE10(v10, v56, a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
v14 = " Toy";
|
|
goto LABEL_330;
|
|
case 126:
|
|
v61 = sub_9B0C00(47);
|
|
v59 = "Forge ";
|
|
if ( !v61 )
|
|
v59 = "Make ";
|
|
sub_40FE10(v10, v59, a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
v14 = " Animal Trap";
|
|
goto LABEL_330;
|
|
case 127:
|
|
v64 = sub_9B0C00(47);
|
|
v62 = "Forge ";
|
|
if ( !v64 )
|
|
v62 = "Make ";
|
|
sub_40FE10(v10, v62, a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
v14 = " Barrel";
|
|
goto LABEL_330;
|
|
case 195:
|
|
v67 = sub_9B0C00(47);
|
|
v65 = "Forge ";
|
|
if ( !v67 )
|
|
v65 = "Make ";
|
|
sub_40FE10(v10, v65, a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
v68 = sub_9B0C00(49);
|
|
v123 = a3;
|
|
if ( v68 )
|
|
v14 = " Tube";
|
|
else
|
|
v14 = " Pipe Section";
|
|
goto LABEL_331;
|
|
case 128:
|
|
v71 = sub_9B0C00(47);
|
|
v69 = "Forge ";
|
|
if ( !v71 )
|
|
v69 = "Make ";
|
|
sub_40FE10(v10, v69, a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
v14 = " Bucket";
|
|
goto LABEL_330;
|
|
case 129:
|
|
sub_40FE10(v10, "Make ", a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
v14 = " Window";
|
|
goto LABEL_330;
|
|
case 133:
|
|
sub_40FE10(v10, "Make ", a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
v14 = " Backpack";
|
|
goto LABEL_330;
|
|
case 134:
|
|
sub_40FE10(v10, "Make ", a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
v14 = " Quiver";
|
|
goto LABEL_330;
|
|
case 102:
|
|
v74 = sub_9B0C00(47);
|
|
v72 = "Forge ";
|
|
if ( !v74 )
|
|
v72 = "Make ";
|
|
sub_40FE10(v73, v72, a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
sub_40FE10(v75, &word_A4905C, a3);
|
|
v76 = sub_53F2A0(v77);
|
|
sub_40FF20(*(_DWORD *)v76 + 36, 0);
|
|
goto LABEL_332;
|
|
case 103:
|
|
v80 = sub_9B0C00(47);
|
|
v78 = "Forge ";
|
|
if ( !v80 )
|
|
v78 = "Make ";
|
|
sub_40FE10(v79, v78, a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
sub_40FE10(v81, &word_A4905C, a3);
|
|
v82 = sub_53F2A0(v83);
|
|
sub_40FF20(*(_DWORD *)v82 + 36, 0);
|
|
goto LABEL_332;
|
|
case 108:
|
|
sub_40FE10(v10, "Bait Trap with ", a3);
|
|
if ( a5 == 43 )
|
|
{
|
|
v14 = &off_A5110C;
|
|
}
|
|
else
|
|
{
|
|
if ( a5 == 47 )
|
|
{
|
|
v14 = "Meat";
|
|
}
|
|
else
|
|
{
|
|
if ( a5 != 48 )
|
|
goto LABEL_332;
|
|
LABEL_206:
|
|
v14 = "Fish";
|
|
}
|
|
}
|
|
goto LABEL_330;
|
|
case 23:
|
|
goto LABEL_206;
|
|
case 101:
|
|
v86 = sub_9B0C00(47);
|
|
v84 = "Forge ";
|
|
if ( !v86 )
|
|
v84 = "Make ";
|
|
sub_40FE10(v85, v84, a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
sub_40FE10(v87, &word_A4905C, a3);
|
|
v88 = sub_53F2A0(v89);
|
|
sub_40FF20(*(_DWORD *)v88 + 36, 0);
|
|
goto LABEL_332;
|
|
case 97:
|
|
v92 = sub_9B0C00(47);
|
|
v90 = "Forge ";
|
|
if ( !v92 )
|
|
v90 = "Make ";
|
|
sub_40FE10(v91, v90, a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
sub_40FE10(v93, &word_A4905C, a3);
|
|
v94 = sub_53F2A0(v95);
|
|
sub_40FF20(*(_DWORD *)v94 + 36, 0);
|
|
goto LABEL_332;
|
|
case 135:
|
|
v98 = sub_9B0C00(47);
|
|
v96 = "Forge ";
|
|
if ( !v98 )
|
|
v96 = "Make ";
|
|
sub_40FE10(v10, v96, a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
v14 = " Ballista Arrow Head";
|
|
goto LABEL_330;
|
|
case 136:
|
|
sub_40FE10(v10, "Assemble ", a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
sub_40FE10(v99, &word_A4905C, a3);
|
|
v100 = sub_53F2A0(v101);
|
|
sub_40FF20(*(_DWORD *)v100 + 36, 0);
|
|
goto LABEL_332;
|
|
case 131:
|
|
v104 = sub_9B0C00(47);
|
|
v102 = "Forge ";
|
|
if ( !v104 )
|
|
v102 = "Make ";
|
|
sub_40FE10(v103, v102, a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
sub_40FE10(v105, &word_A4905C, a3);
|
|
v106 = sub_53F2A0(v107);
|
|
sub_40FF20(*(_DWORD *)v106 + 64, 0);
|
|
goto LABEL_332;
|
|
case 99:
|
|
sub_40FE10(v10, "Construct", a3);
|
|
if ( !(a10 & 2) )
|
|
{
|
|
sub_40FE10(v10, &word_A4905C, a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
}
|
|
v14 = " Catapult Parts";
|
|
goto LABEL_330;
|
|
case 142:
|
|
v110 = sub_9B0C00(47);
|
|
v108 = "Forge ";
|
|
if ( !v110 )
|
|
v108 = "Make ";
|
|
sub_40FE10(v109, v108, a3);
|
|
v124 = a6;
|
|
if ( *(_DWORD *)(*(_DWORD *)sub_53F2A0(v111) + 112) )
|
|
{
|
|
v112 = sub_53F2A0(v111);
|
|
sub_40FF20(*(_DWORD *)v112 + 92, 0);
|
|
sub_40FE10(v113, &word_A4905C, a3);
|
|
}
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
sub_40FE10(v114, &word_A4905C, a3);
|
|
v115 = sub_53F2A0(v116);
|
|
sub_40FF20(*(_DWORD *)v115 + 36, 0);
|
|
goto LABEL_332;
|
|
case 141:
|
|
sub_40FE10(v10, "Construct", a3);
|
|
if ( (_WORD)v11 )
|
|
{
|
|
sub_40FE10(v10, &word_A4905C, a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
}
|
|
v14 = " Mechanisms";
|
|
goto LABEL_330;
|
|
case 100:
|
|
sub_40FE10(v10, "Construct", a3);
|
|
if ( !(a10 & 2) )
|
|
{
|
|
sub_40FE10(v10, &word_A4905C, a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
}
|
|
v14 = " Ballista Parts";
|
|
goto LABEL_330;
|
|
case 98:
|
|
sub_40FE10(v10, "Forge ", a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
v14 = " Anvil";
|
|
goto LABEL_330;
|
|
case 71:
|
|
sub_40FE10(v10, "Construct", a3);
|
|
if ( (_WORD)v11 < 419 || (v10 = 618, (_WORD)v11 > 618) )
|
|
{
|
|
if ( !(a10 & 3) )
|
|
{
|
|
sub_40FE10(v10, &word_A4905C, a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
}
|
|
}
|
|
v14 = " Bed";
|
|
goto LABEL_330;
|
|
case 80:
|
|
sub_40FE10(v10, "Construct ", a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
v14 = " Statue";
|
|
goto LABEL_330;
|
|
case 203:
|
|
sub_40FE10(v10, "Construct ", a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
v14 = " Quern";
|
|
goto LABEL_330;
|
|
case 204:
|
|
sub_40FE10(v10, "Construct ", a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
v14 = " Millstone";
|
|
goto LABEL_330;
|
|
case 95:
|
|
v14 = "Train Hunting Animal";
|
|
goto LABEL_330;
|
|
case 96:
|
|
v14 = "Train War Animal";
|
|
goto LABEL_330;
|
|
case 186:
|
|
v14 = "Make Charcoal";
|
|
goto LABEL_330;
|
|
case 187:
|
|
v14 = "Make Ash";
|
|
goto LABEL_330;
|
|
case 213:
|
|
v117 = sub_5ECDB0(&unk_16B8768, v124);
|
|
if ( v117 )
|
|
{
|
|
sub_409970(v117 + 28);
|
|
LOBYTE(v134) = 2;
|
|
sub_427880();
|
|
v122 = 0;
|
|
v121 = &v129;
|
|
LABEL_66:
|
|
sub_40FF20(v121, v122);
|
|
sub_4099A0(&v129);
|
|
}
|
|
else
|
|
{
|
|
v14 = "Reaction";
|
|
LABEL_330:
|
|
v123 = a3;
|
|
LABEL_331:
|
|
sub_40FE10(v10, v14, v123);
|
|
}
|
|
LABEL_332:
|
|
if ( v128 >= 0x10 )
|
|
operator delete(v126);
|
|
return sub_9FD1AA(v124);
|
|
case 90:
|
|
sub_40FE10(v10, "Smelt ", a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
v14 = " Ore";
|
|
goto LABEL_330;
|
|
case 91:
|
|
v14 = "Melt a Metal Object";
|
|
goto LABEL_330;
|
|
case 92:
|
|
v14 = "Extract Metal Strands";
|
|
goto LABEL_330;
|
|
case 192:
|
|
v14 = "Dye Thread";
|
|
goto LABEL_330;
|
|
case 193:
|
|
v14 = "Dye Cloth";
|
|
goto LABEL_330;
|
|
case 194:
|
|
sub_40FE10(v10, "Sew ", a3);
|
|
sub_9F11F0(&dword_165B188, v11, a7, 1, 0);
|
|
sub_40FF20(&v125, 0);
|
|
v14 = " Image";
|
|
goto LABEL_330;
|
|
case 12:
|
|
v14 = "Collect Webs";
|
|
goto LABEL_330;
|
|
case 116:
|
|
if ( (unsigned __int8)sub_9B0C00(47) )
|
|
{
|
|
v119 = "Weave Metal Cloth";
|
|
}
|
|
else
|
|
{
|
|
v119 = "Weave Thread into Silk";
|
|
if ( !(a10 & 8) )
|
|
v119 = "Weave Thread into Cloth";
|
|
}
|
|
sub_40FE10(v10, v119, a3);
|
|
if ( !a9 )
|
|
goto LABEL_332;
|
|
v14 = " (Dyed Only)";
|
|
goto LABEL_330;
|
|
case 94:
|
|
v14 = "Harvest Plants";
|
|
goto LABEL_330;
|
|
case 93:
|
|
v14 = "Plant Seeds";
|
|
goto LABEL_330;
|
|
case 190:
|
|
v14 = "Fertilize Field";
|
|
goto LABEL_330;
|
|
case 149:
|
|
v14 = "Pull the Lever";
|
|
goto LABEL_330;
|
|
case 148:
|
|
v14 = "Link a Building to Trigger";
|
|
goto LABEL_330;
|
|
case 0:
|
|
v14 = "Carve Fortification";
|
|
goto LABEL_330;
|
|
case 1:
|
|
v14 = "Detail Wall";
|
|
goto LABEL_330;
|
|
case 2:
|
|
v14 = "Detail Floor";
|
|
goto LABEL_330;
|
|
case 3:
|
|
v14 = "Dig";
|
|
goto LABEL_330;
|
|
case 202:
|
|
v14 = "Remove Stairs/Ramps";
|
|
goto LABEL_330;
|
|
case 11:
|
|
v14 = "Remove Construction";
|
|
goto LABEL_330;
|
|
case 4:
|
|
v14 = "Carve Upward Staircase";
|
|
goto LABEL_330;
|
|
case 5:
|
|
v14 = "Carve Downward Staircase";
|
|
goto LABEL_330;
|
|
case 6:
|
|
v14 = "Carve Up/Down Staircase";
|
|
goto LABEL_330;
|
|
case 7:
|
|
v14 = "Carve Ramp";
|
|
goto LABEL_330;
|
|
case 8:
|
|
v14 = "Dig Channel";
|
|
goto LABEL_330;
|
|
case 9:
|
|
v14 = "Fell Tree";
|
|
goto LABEL_330;
|
|
case 10:
|
|
v14 = "Gather Plants";
|
|
goto LABEL_330;
|
|
case 14:
|
|
v14 = "Bring Item to Shop";
|
|
goto LABEL_330;
|
|
case 13:
|
|
v14 = "Bring Item to Depot";
|
|
goto LABEL_330;
|
|
case 15:
|
|
v14 = "Eat";
|
|
goto LABEL_330;
|
|
case 16:
|
|
v14 = "Get Provisions";
|
|
goto LABEL_330;
|
|
case 210:
|
|
v14 = "Clean Self";
|
|
goto LABEL_330;
|
|
case 17:
|
|
case 18:
|
|
v14 = "Drink";
|
|
goto LABEL_330;
|
|
case 19:
|
|
case 20:
|
|
v14 = "Fill Waterskin";
|
|
goto LABEL_330;
|
|
case 21:
|
|
v14 = "Sleep";
|
|
goto LABEL_330;
|
|
case 26:
|
|
v14 = "Kidnap";
|
|
goto LABEL_330;
|
|
case 24:
|
|
v14 = "Hunt";
|
|
goto LABEL_330;
|
|
case 28:
|
|
v14 = "Starting Fist Fight";
|
|
goto LABEL_330;
|
|
case 27:
|
|
v14 = "Beat Criminal";
|
|
goto LABEL_330;
|
|
case 25:
|
|
v14 = "Hunt for Small Creature";
|
|
goto LABEL_330;
|
|
case 29:
|
|
v14 = "Collect Taxes";
|
|
goto LABEL_330;
|
|
case 30:
|
|
v14 = "Guard Tax Collector";
|
|
goto LABEL_330;
|
|
case 33:
|
|
v14 = "Return Kill";
|
|
goto LABEL_330;
|
|
case 34:
|
|
v14 = "Check Chest";
|
|
goto LABEL_330;
|
|
case 49:
|
|
case 50:
|
|
v14 = "Go Shopping";
|
|
goto LABEL_330;
|
|
case 48:
|
|
v14 = "Attend Party";
|
|
goto LABEL_330;
|
|
case 46:
|
|
v14 = "Seek Artifact";
|
|
goto LABEL_330;
|
|
case 47:
|
|
v14 = "Seek Infant";
|
|
goto LABEL_330;
|
|
case 35:
|
|
v14 = "Store Owned Item";
|
|
goto LABEL_330;
|
|
case 36:
|
|
v14 = "Place Item in Tomb";
|
|
goto LABEL_330;
|
|
case 37:
|
|
v14 = "Store Item in Stockpile";
|
|
goto LABEL_330;
|
|
case 38:
|
|
v14 = "Store Item in Bag";
|
|
goto LABEL_330;
|
|
case 44:
|
|
v14 = "Store Item in Barrel";
|
|
goto LABEL_330;
|
|
case 45:
|
|
v14 = "Store Item in Bin";
|
|
goto LABEL_330;
|
|
case 42:
|
|
v14 = "Store Weapon";
|
|
goto LABEL_330;
|
|
case 43:
|
|
v14 = "Store Armor";
|
|
goto LABEL_330;
|
|
case 39:
|
|
v14 = "Store Item in Hospital";
|
|
goto LABEL_330;
|
|
case 40:
|
|
v14 = "Store Item in Chest";
|
|
goto LABEL_330;
|
|
case 41:
|
|
v14 = "Store Item in Cabinet";
|
|
goto LABEL_330;
|
|
case 51:
|
|
v14 = "Clean";
|
|
goto LABEL_330;
|
|
case 52:
|
|
v14 = "Rest";
|
|
goto LABEL_330;
|
|
case 53:
|
|
v14 = "Pickup Equipment";
|
|
goto LABEL_330;
|
|
case 54:
|
|
v14 = "Dump Item";
|
|
goto LABEL_330;
|
|
case 55:
|
|
case 56:
|
|
case 57:
|
|
case 58:
|
|
case 59:
|
|
case 60:
|
|
case 61:
|
|
case 62:
|
|
case 63:
|
|
case 64:
|
|
case 65:
|
|
case 66:
|
|
case 67:
|
|
v14 = "Strange Mood";
|
|
goto LABEL_330;
|
|
case 146:
|
|
v14 = "Clean Trap";
|
|
goto LABEL_330;
|
|
case 137:
|
|
v14 = "Load Catapult";
|
|
goto LABEL_330;
|
|
case 138:
|
|
v14 = "Load Ballista";
|
|
goto LABEL_330;
|
|
case 139:
|
|
v14 = "Fire Catapult";
|
|
goto LABEL_330;
|
|
case 140:
|
|
v14 = "Fire Ballista";
|
|
goto LABEL_330;
|
|
case 196:
|
|
v14 = "Operate Pump";
|
|
goto LABEL_330;
|
|
case 143:
|
|
v14 = "Load Cage Trap";
|
|
goto LABEL_330;
|
|
case 144:
|
|
v14 = "Load Stone Trap";
|
|
goto LABEL_330;
|
|
case 145:
|
|
v14 = "Load Weapon Trap";
|
|
goto LABEL_330;
|
|
case 147:
|
|
v14 = "Cast Spell";
|
|
goto LABEL_330;
|
|
default:
|
|
goto LABEL_332;
|
|
}
|
|
}
|
|
-->
|
|
====================================================================
|
|
S K I L L S
|
|
====================================================================
|
|
<Skill name="Mining">0</Skill>
|
|
<Skill name="Wood Cutting">1</Skill>
|
|
<Skill name="Carpentry">2</Skill>
|
|
<Skill name="Bowmaking">49</Skill>
|
|
<Skill name="Engraving">3</Skill>
|
|
<Skill name="Masonry">4</Skill>
|
|
<Skill name="Animal Training">5</Skill>
|
|
<Skill name="Animal Caretaking">6</Skill>
|
|
<Skill name="Fish Dissection">7</Skill>
|
|
<Skill name="Animal Dissection">8</Skill>
|
|
<Skill name="Fish Cleaning">9</Skill>
|
|
<Skill name="Butchery">10</Skill>
|
|
<Skill name="Trapping">11</Skill>
|
|
<Skill name="Growing">22</Skill>
|
|
<Skill name="Herbalism">23</Skill>
|
|
<Skill name="Ambush">57</Skill>
|
|
<Skill name="Swimming">71</Skill>
|
|
<Skill name="Persuasion">72</Skill>
|
|
<Skill name="Negotiation">73</Skill>
|
|
<Skill name="Judging Intent">74</Skill>
|
|
<Skill name="Appraisal">75</Skill>
|
|
<Skill name="Organization">76</Skill>
|
|
<Skill name="Record Keeping">77</Skill>
|
|
<Skill name="Lying">78</Skill>
|
|
<Skill name="Intimidation">79</Skill>
|
|
<Skill name="Conversation">80</Skill>
|
|
<Skill name="Comedy">81</Skill>
|
|
<Skill name="Flattery">82</Skill>
|
|
<Skill name="Consoling">83</Skill>
|
|
<Skill name="Pacification">84</Skill>
|
|
<Skill name="Tracking">85</Skill>
|
|
<Skill name="Fishing">24</Skill>
|
|
<Skill name="Furnace Operation">25</Skill>
|
|
<Skill name="Strand Extraction">26</Skill>
|
|
<Skill name="Soap Making">67</Skill>
|
|
<Skill name="Potash Making">68</Skill>
|
|
<Skill name="Lye Making">66</Skill>
|
|
<Skill name="Wood Burning">65</Skill>
|
|
<Skill name="Weaponsmithing">27</Skill>
|
|
<Skill name="Armorsmithing">28</Skill>
|
|
<Skill name="Metalsmithing">29</Skill>
|
|
<Skill name="Gem Cutting">30</Skill>
|
|
<Skill name="Gem Setting">31</Skill>
|
|
<Skill name="Wood Crafting">32</Skill>
|
|
<Skill name="Stone Crafting">33</Skill>
|
|
<Skill name="Metal Crafting">34</Skill>
|
|
<Skill name="Glassmaking">35</Skill>
|
|
<Skill name="Studying">86</Skill>
|
|
<Skill name="Concentration">87</Skill>
|
|
<Skill name="Discipline">88</Skill>
|
|
<Skill name="Observation">89</Skill>
|
|
<Skill name="Writing">90</Skill>
|
|
<Skill name="Prose">91</Skill>
|
|
<Skill name="Poetry">92</Skill>
|
|
<Skill name="Reading">93</Skill>
|
|
<Skill name="Speaking">94</Skill>
|
|
<Skill name="Coordination">95</Skill>
|
|
<Skill name="Balance">96</Skill>
|
|
<Skill name="Leadership">97</Skill>
|
|
<Skill name="Teaching">98</Skill>
|
|
<Skill name="Fighting">99</Skill>
|
|
<Skill name="Archery">100</Skill>
|
|
<Skill name="Wrestling">101</Skill>
|
|
<Skill name="Biting">102</Skill>
|
|
<Skill name="Striking">103</Skill>
|
|
<Skill name="Kicking">104</Skill>
|
|
<Skill name="Dodging">105</Skill>
|
|
<Skill name="Axe">38</Skill>
|
|
<Skill name="Sword">39</Skill>
|
|
<Skill name="Mace">41</Skill>
|
|
<Skill name="Hammer">42</Skill>
|
|
<Skill name="Spear">43</Skill>
|
|
<Skill name="Crossbow">44</Skill>
|
|
<Skill name="Pike">50</Skill>
|
|
<Skill name="Bow">52</Skill>
|
|
<Skill name="Shield">45</Skill>
|
|
<Skill name="Armor">46</Skill>
|
|
<Skill name="Siege Engineering">47</Skill>
|
|
<Skill name="Siege Operation">48</Skill>
|
|
<Skill name="Pump Operation">70</Skill>
|
|
<Skill name="Leatherworkering">36</Skill>
|
|
<Skill name="Tanning">12</Skill>
|
|
<Skill name="Dyeing">69</Skill>
|
|
<Skill name="Bone Carving">37</Skill>
|
|
<Skill name="Weaving">13</Skill>
|
|
<Skill name="Brewing">14</Skill>
|
|
<Skill name="Clothes Making">16</Skill>
|
|
<Skill name="Milling">17</Skill>
|
|
<Skill name="Threshing">18</Skill>
|
|
<Skill name="Blowgun">53</Skill>
|
|
<Skill name="Throwing">54</Skill>
|
|
<Skill name="Machinery">55</Skill>
|
|
<Skill name="Nature">56</Skill>
|
|
<Skill name="Knife">40</Skill>
|
|
<Skill name="Lash">51</Skill>
|
|
<Skill name="Cooking">21</Skill>
|
|
<Skill name="Alchemy">15</Skill>
|
|
<Skill name="Building Design">58</Skill>
|
|
<Skill name="Cheese Making">19</Skill>
|
|
<Skill name="Milking">20</Skill>
|
|
<Skill name="Misc. Object">106</Skill>
|
|
<Skill name="Wound Dressing">59</Skill>
|
|
<Skill name="Diagnostics">60</Skill>
|
|
<Skill name="Surgery">61</Skill>
|
|
<Skill name="Bone Setting">62</Skill>
|
|
<Skill name="Suturing">63</Skill>
|
|
<Skill name="Crutch-walking">64</Skill>
|
|
|
|
====================================================================
|
|
L A B O R S
|
|
====================================================================
|
|
<Labor name="Mining">0</Labor>
|
|
<Labor name="Stone Hauling">1</Labor>
|
|
<Labor name="Wood Hauling">2</Labor>
|
|
<Labor name="Burial">3</Labor>
|
|
<Labor name="Food Hauling">4</Labor>
|
|
<Labor name="Refuse Hauling">5</Labor>
|
|
<Labor name="Item Hauling">6</Labor>
|
|
<Labor name="Furniture Hauling">7</Labor>
|
|
<Labor name="Animal Hauling">8</Labor>
|
|
<Labor name="Cleaning">9</Labor>
|
|
<Labor name="Wood Cutting">10</Labor>
|
|
<Labor name="Carpentry">11</Labor>
|
|
<Labor name="Stone Detailing">12</Labor>
|
|
<Labor name="Masonry">13</Labor>
|
|
<Labor name="Architecture">14</Labor>
|
|
<Labor name="Animal Training">15</Labor>
|
|
<Labor name="Animal Care">16</Labor>
|
|
<Labor name="Diagnosis">17</Labor>
|
|
<Labor name="Surgery">18</Labor>
|
|
<Labor name="Setting Bones">19</Labor>
|
|
<Labor name="Suturing">20</Labor>
|
|
<Labor name="Dressing Wounds">21</Labor>
|
|
<Labor name="Feed Patients/Prisoners">22</Labor>
|
|
<Labor name="Recovering Wounded">23</Labor>
|
|
<Labor name="Butchery">24</Labor>
|
|
<Labor name="Trapping">25</Labor>
|
|
<Labor name="Small Animal Dissection">26</Labor>
|
|
<Labor name="Leatherworking">27</Labor>
|
|
<Labor name="Tanning">28</Labor>
|
|
<Labor name="Brewing">29</Labor>
|
|
<Labor name="Alchemy">30</Labor>
|
|
<Labor name="Soap Maker">31</Labor>
|
|
<Labor name="Weaving">32</Labor>
|
|
<Labor name="Clothesmaking">33</Labor>
|
|
<Labor name="Milling">34</Labor>
|
|
<Labor name="Plant Processing">35</Labor>
|
|
<Labor name="Cheese Making">36</Labor>
|
|
<Labor name="Milking">37</Labor>
|
|
<Labor name="Cooking">38</Labor>
|
|
<Labor name="Farming (Fields)">39</Labor>
|
|
<Labor name="Plant Gathering">40</Labor>
|
|
<Labor name="Fishing">41</Labor>
|
|
<Labor name="Fish Cleaning">42</Labor>
|
|
<Labor name="Fish Dissection">43</Labor>
|
|
<Labor name="Hunting">44</Labor>
|
|
<Labor name="Furnace Operating">45</Labor>
|
|
<Labor name="Weaponsmithing">46</Labor>
|
|
<Labor name="Armoring">47</Labor>
|
|
<Labor name="Blacksmithing">48</Labor>
|
|
<Labor name="Metalcrafting">49</Labor>
|
|
<Labor name="Gem Cutting">50</Labor>
|
|
<Labor name="Gem Setting">51</Labor>
|
|
<Labor name="Woodcrafting">52</Labor>
|
|
<Labor name="Stonecrafting">53</Labor>
|
|
<Labor name="Bone Carving">54</Labor>
|
|
<Labor name="Glassmaking">55</Labor>
|
|
<Labor name="Strand Extraction">56</Labor>
|
|
<Labor name="Siege Engineering">57</Labor>
|
|
<Labor name="Siege Operating">58</Labor>
|
|
<Labor name="Crossbow-making">59</Labor>
|
|
<Labor name="Mechanics">60</Labor>
|
|
<Labor name="Potash Making">61</Labor>
|
|
<Labor name="Lye Making">62</Labor>
|
|
<Labor name="Dyeing">63</Labor>
|
|
<Labor name="Wood Burning">64</Labor>
|
|
<Labor name="Pump Operating">65</Labor>
|
|
|
|
<!--
|
|
* Labor groups *
|
|
<Labor name="Woodworking">4294967294</Labor>
|
|
<Labor name="Stoneworking">4294967293</Labor>
|
|
<Labor name="Hunting/Related">4294967292</Labor>
|
|
<Labor name="Healthcare">4294967291</Labor>
|
|
<Labor name="Farming/Related">4294967290</Labor>
|
|
<Labor name="Fishing/Related">4294967289</Labor>
|
|
<Labor name="Metalsmithing">4294967288</Labor>
|
|
<Labor name="Jewelry">4294967287</Labor>
|
|
<Labor name="Crafts">4294967286</Labor>
|
|
<Labor name="Engineering">4294967285</Labor>
|
|
<Labor name="Hauling">4294967284</Labor>
|
|
<Labor name="Other Jobs">4294967283</Labor>
|
|
-->
|
|
====================================================================
|
|
V -- T A B L E S
|
|
(for stonesense)
|
|
====================================================================
|
|
<VTable name="building_vtable">
|
|
<multiclass name="building_workshopst" typeoffset="0x138">
|
|
<!--<class name="building_alchemists_laboratoryst" type="0x0"/>-->
|
|
<class name="building_carpenters_workshopst" type="0x0"/>
|
|
<class name="building_farmers_workshopst" type="0x1"/>
|
|
<class name="building_masons_workshopst" type="0x2"/>
|
|
<class name="building_craftdwarfs_workshopst" type="0x3"/>
|
|
<class name="building_jewelers_workshopst" type="0x4"/>
|
|
<class name="building_metalsmiths_workshopst" type="0x5"/>
|
|
<class name="building_magma_forgest" type="0x6"/>
|
|
<class name="building_bowyers_workshopst" type="0x7"/>
|
|
<class name="building_mechanics_workshopst" type="0x8"/>
|
|
<class name="building_siege_workshopst" type="0x9"/>
|
|
<class name="building_butchers_shopst" type="0xA"/>
|
|
<class name="building_leather_worksst" type="0xB"/>
|
|
<class name="building_tanners_shopst" type="0xC"/>
|
|
<class name="building_clothiers_shopst" type="0xD"/>
|
|
<class name="building_fisheryst" type="0xE"/>
|
|
<class name="building_stillst" type="0xF"/>
|
|
<class name="building_loomst" type="0x10"/>
|
|
<class name="building_quernst" type="0x11"/>
|
|
<class name="building_kennelsst" type="0x12"/>
|
|
<class name="building_kitchenst" type="0x13"/>
|
|
<class name="building_asheryst" type="0x14"/>
|
|
<class name="building_dyers_shopst" type="0x15"/>
|
|
<class name="building_millstonest" type="0x16"/>
|
|
</multiclass>
|
|
<multiclass name="building_furnacest" typeoffset="0x152">
|
|
<class name="building_wood_furnacest" type="0x0"/>
|
|
<class name="building_smelterst" type="0x1"/>
|
|
<class name="building_glass_furnacest" type="0x2"/>
|
|
<class name="building_kilnst" type="0x3"/>
|
|
<class name="building_magma_smelterst" type="0x4"/>
|
|
<class name="building_magma_glass_furnacest" type="0x5"/>
|
|
<class name="building_magma_kilnst" type="0x6"/>
|
|
</multiclass>
|
|
<multiclass name="building_siegeenginest" typeoffset="0x138">
|
|
<class name="building_catapultst" type="0x0"/>
|
|
<class name="building_ballistast" type="0x1"/>
|
|
</multiclass>
|
|
<multiclass name="building_trapst" typeoffset="0x138">
|
|
<class name="building_leverst" type="0x0"/>
|
|
<class name="building_pressure_platest" type="0x1"/>
|
|
<class name="building_cage_trapst" type="0x2"/>
|
|
<class name="building_stonefall_trapst" type="0x3"/>
|
|
<class name="building_weapon_trapst" type="0x4"/>
|
|
</multiclass>
|
|
<class name="building_constructionst"/>
|
|
<class name="building_road_pavedst"/>
|
|
<class name="building_road_dirtst"/>
|
|
<class name="building_roadst"/>
|
|
<class name="building_wagonst"/>
|
|
<class name="building_tradedepotst"/>
|
|
<class name="building_animaltrapst"/>
|
|
<class name="building_farmplotst"/>
|
|
<class name="building_windowst"/>
|
|
<class name="building_statuest"/>
|
|
<class name="building_wellst"/>
|
|
<class name="building_coffinst"/>
|
|
<class name="building_shopst"/>
|
|
<class name="building_chairst"/>
|
|
<class name="building_tablest"/>
|
|
<class name="building_bedst"/>
|
|
<class name="building_cagest"/>
|
|
<class name="building_chainst"/>
|
|
<class name="building_windmillstst"/>
|
|
<class name="building_water_wheelst"/>
|
|
<class name="building_screw_pumpst"/>
|
|
<class name="building_archerytargetst"/>
|
|
<class name="building_weaponst"/><!-- retractable spikes -->
|
|
<class name="building_supportst"/>
|
|
<class name="building_axle_verticalst"/>
|
|
<class name="building_axle_horizontalst"/>
|
|
<class name="building_gear_assemblyst"/>
|
|
<class name="building_bars_floorst"/>
|
|
<class name="building_bars_verticalst"/>
|
|
<class name="building_grate_floorst"/>
|
|
<class name="building_grate_wallst"/>
|
|
<class name="building_floodgatest"/>
|
|
<class name="building_bridgest"/>
|
|
<class name="building_hatchst"/>
|
|
<class name="building_doorst"/>
|
|
<class name="building_armorstandst"/>
|
|
<class name="building_weaponrackst"/>
|
|
<class name="building_cabinetst"/>
|
|
<class name="building_boxst"/>
|
|
<class name="building_actualst"/>
|
|
<class name="building_civzonest"/>
|
|
<class name="building_stockpilest"/>
|
|
<class name="building_window_gemst"/>
|
|
<class name="building_window_glassst"/>
|
|
</VTable>
|
|
</Entry>
|
|
|
|
|
|
.,:rsr,
|
|
:2;,;r2A@@5
|
|
@2::s5A#@@@ @r. .
|
|
sd;:riXA#@@ :@@@Gir;;AS9
|
|
Bs::sS3A#@2 @@#AhXirsS#;
|
|
iHrLr5d#@@@ .@#95sr;;rie
|
|
i*' `*@3 @@A2sr;:;r#5
|
|
:..:rll: @@A5sr::r3@
|
|
@Hr;iZ#@@@@ `:rr;;;;:
|
|
S@r.;i2#@@@ @s. ..
|
|
@2::ri2A@@# B@G2ir:...5i
|
|
:@r,r3X##@@ @G5sr:..,:A
|
|
.@Ar;;rSB@@# H#2sr;,..,is
|
|
.' `* ,@ASs;:..,:B
|
|
;rr;:,..,:.
|
|
`'''
|
|
W I N D O W S
|
|
and
|
|
W I N E
|
|
|
|
|
|
|
|
<Entry version="v0.31.01" os="windows" id="0.31.01" base="meta-2010">
|
|
<String name="md5">851c1190b6a7b42f2463967623d18575</String>
|
|
<HexValue name="pe_timestamp">0x4BB45F99</HexValue>
|
|
|
|
Basic things
|
|
============
|
|
<HexValue name="sizeof_vector">0x18</HexValue>
|
|
<Offset name="vector_triplet">0xC</Offset>
|
|
Vector layout in MSVC 9:
|
|
DWORD Allocator?
|
|
DWORD ?
|
|
DWORD ?
|
|
DWORD Start
|
|
DWORD End
|
|
DWORD AllocationEnd
|
|
|
|
<HexValue name="sizeof_string">0x1C</HexValue>
|
|
<!-- most probably a static object, because its parts are often
|
|
referenced as offset to this address *and* as addresses -->
|
|
<Address name="WORLD">0x0165B188</Address>
|
|
|
|
Position and window dimensions
|
|
==============================
|
|
<Address name="window_x">0xe32798</Address>
|
|
<Address name="window_y">0xe60838</Address>
|
|
<Address name="window_z">0xe60814</Address>
|
|
<Address name="cursor_xyz">0xae82cc</Address>
|
|
|
|
<Address name="window_dims">0x17f5ab8</Address>
|
|
Found addresses: (next to each other!)
|
|
0x17f5ab8
|
|
0x17f5ac0
|
|
0x17f5ac8
|
|
0x17f5ad0
|
|
|
|
GUI State
|
|
=========
|
|
<Address name="pause_state">0x146e45f</Address>
|
|
Found addresses:
|
|
0x146e45f <!-- looks like a dword -->
|
|
0x185b677 <!-- looks like a word -->
|
|
|
|
Bogus: <Address name="current_cursor_creature">0xae82cc</Address>
|
|
|
|
<Address name="current_menu_state">0x017f6f38</Address>
|
|
|
|
Bogus: <Address name="view_screen">0xae82cc</Address>
|
|
|
|
Map stuff
|
|
=========
|
|
<Address name="map_data">0x016AD718</Address>
|
|
<Offset name="v_vein">0x08</Offset>
|
|
<Offset name="type">0x009A</Offset>
|
|
<Offset name="designation">0x029C</Offset>
|
|
<!--<Offset name="occupancy">0x069c</Offset> seems unused, no watch hits-->
|
|
<Offset name="biome_stuffs">0x1D9C</Offset>
|
|
<!--
|
|
map_data_map_x_offset 0x0058
|
|
map_data_map_y_offset 0x005A
|
|
map_data_type_offset 0x009a
|
|
map_data_designation_offset 0x029c
|
|
map_data_occupancy_offset 0x069c
|
|
map_data_0a60_offset 0x0A9c
|
|
map_data_pathfinding_offset 0x0D9c
|
|
map_data_1160_offset 0x119c
|
|
map_data_1360_offset 0x139c
|
|
map_data_temperature1_offset 0x159c
|
|
map_data_temperature2_offset 0x179c
|
|
map_data_1960_offset 0x199c
|
|
map_data_1b60_offset 0x1B9c
|
|
-->
|
|
|
|
* map size in blocks *
|
|
<Address name="x_count_block">0x016ad738</Address>
|
|
<Address name="y_count_block">0x016ad73C</Address>
|
|
<Address name="z_count_block">0x016ad740</Address>
|
|
|
|
* map size in tiles *
|
|
<Address name="x_count">0x016ad744</Address>
|
|
<Address name="y_count">0x016ad748</Address>
|
|
<Address name="z_count">0x016ad74C</Address>
|
|
|
|
* Suspected region coords *
|
|
<Address name="region_x">0x016ad750</Address>
|
|
<Address name="region_y">0x016ad754</Address>
|
|
<Address name="region_z">0x016ad758</Address>
|
|
|
|
* World size * (WORDs)
|
|
<Address name="world_size_x">0x016AEDD4</Address>
|
|
<Address name="world_size_y">0x016AEDD6</Address>
|
|
|
|
<Address name="geoblock_vector">0x16AF52C</Address>
|
|
<Address name="ptr2_region_array">0x16AF574</Address>
|
|
|
|
<!--
|
|
<Offset name="world_size_x">0x84</Offset>
|
|
<Offset name="world_size_y">0x86</Offset>
|
|
<Offset name="w_geoblocks">0x75C</Offset> vector
|
|
<Offset name="w_regions_arr">0x79C</Offset>
|
|
-->
|
|
<!-- values for the region structure -->
|
|
<HexValue name="region_size">0x64</HexValue>
|
|
<Offset name="region_geo_index_off">0x60</Offset>
|
|
<!-- geoblock offset(s?) -->
|
|
<Offset name="geolayer_geoblock_offset">0x4</Offset> vector
|
|
<Offset name="type_inside_geolayer">0x4</Offset> vector
|
|
|
|
Name struct
|
|
===========
|
|
<Offset name="name_firstname">0x0</Offset>
|
|
<Offset name="name_nickname">0x1C</Offset>
|
|
<Offset name="name_words">0x38</Offset>
|
|
|
|
|
|
|
|
Creatures
|
|
=========
|
|
<Address name="creature_vector">0x0166ecc4</Address>
|
|
<Address name="dwarf_race_index">0x01470fbc</Address>
|
|
|
|
<Offset name="creature_name">0x0</Offset>
|
|
<Offset name="creature_custom_profession">0x6c</Offset>
|
|
<Offset name="creature_profession">0x88</Offset>
|
|
<Offset name="creature_race">0x8C</Offset>
|
|
<Offset name="creature_position">0x90</Offset>
|
|
<Offset name="creature_flags1">0xF8</Offset>
|
|
<Offset name="creature_flags2">0xFC</Offset>
|
|
<Offset name="creature_sex">0x110</Offset>
|
|
<Offset name="creature_id">0x114</Offset>
|
|
<Offset name="creature_side">0X120</Offset> <!-- what? -->
|
|
<Offset name="creature_soulskill_vector">0X1F4</Offset>
|
|
<Offset name="creature_mood">0x238</Offset>
|
|
|
|
<Offset name="creature_physical">0x464</Offset>
|
|
<!--
|
|
<Offset name="creature_strength">0x464</Offset>
|
|
<Offset name="creature_agility">0x480</Offset>
|
|
<Offset name="creature_toughness">0x49C</Offset>
|
|
<Offset name="creature_endurance">0x4B8</Offset>
|
|
<Offset name="creature_recuperation">0x4D4</Offset>
|
|
<Offset name="creature_disease_resistance">0x4F0</Offset>
|
|
-->
|
|
<Offset name="creature_current_job">0x390</Offset> <!-- from chmod -->
|
|
<Offset name="creature_artifact_name">0x6D0</Offset>
|
|
<Offset name="creature_labors">0x770</Offset>
|
|
<Offset name="creature_soul_vector">0x073C</Offset>
|
|
<Offset name="creature_default_soul">0x0754</Offset>
|
|
<Offset name="creature_happiness">0x830</Offset>
|
|
|
|
Souls
|
|
=====
|
|
<Offset name="soul_name">0x0</Offset>
|
|
<Offset name="soul_skills_vector">0x1F4</Offset>
|
|
<Offset name="soul_mental">0x88</Offset>
|
|
<!--
|
|
mid = AddStrucMember(id,"analytical_ability", 0X88, 0x60000400, GetStrucIdByName("s_attrib"), 28);
|
|
mid = AddStrucMember(id,"focus", 0XA4, 0x60000400, GetStrucIdByName("s_attrib"), 28);
|
|
mid = AddStrucMember(id,"willpower", 0XC0, 0x60000400, GetStrucIdByName("s_attrib"), 28);
|
|
mid = AddStrucMember(id,"creativity", 0XDC, 0x60000400, GetStrucIdByName("s_attrib"), 28);
|
|
mid = AddStrucMember(id,"intuition", 0XF8, 0x60000400, GetStrucIdByName("s_attrib"), 28);
|
|
mid = AddStrucMember(id,"patience", 0X114, 0x60000400, GetStrucIdByName("s_attrib"), 28);
|
|
mid = AddStrucMember(id,"memory", 0X130, 0x60000400, GetStrucIdByName("s_attrib"), 28);
|
|
mid = AddStrucMember(id,"linguistic_ability", 0X14C, 0x60000400, GetStrucIdByName("s_attrib"), 28);
|
|
mid = AddStrucMember(id,"spatial_sense", 0X168, 0x60000400, GetStrucIdByName("s_attrib"), 28);
|
|
mid = AddStrucMember(id,"musicality", 0X184, 0x60000400, GetStrucIdByName("s_attrib"), 28);
|
|
mid = AddStrucMember(id,"kinesthetic_sense", 0X1A0, 0x60000400, GetStrucIdByName("s_attrib"), 28);
|
|
mid = AddStrucMember(id,"empathy", 0X1BC, 0x60000400, GetStrucIdByName("s_attrib"), 28);
|
|
mid = AddStrucMember(id,"social_awareness", 0X1D8, 0x60000400, GetStrucIdByName("s_attrib"), 28);
|
|
-->
|
|
|
|
Materials
|
|
=========
|
|
<!-- Number vectors are vector <uint32_t> -->
|
|
<!-- Others are vector<object *> -->
|
|
<!-- first member of 'object' is a STL string with the name of said object -->
|
|
|
|
this is an array of 4B pointers to material templates and length 0x292
|
|
base_type_array = WORLD + 0x5DF44
|
|
<Address name="base_type_array">0x016b90cc</Address>
|
|
<Address name="mat_templates">0x16afcec</Address>
|
|
|
|
<!-- soil, stone, metal -->
|
|
inorganics vector = WORLD + 0x54B7C = 0x16AFD04
|
|
<Address name="mat_inorganics">0x16afd04</Address>
|
|
<Offset name="inorganic_material_template_instantiation">0x178</Offset>
|
|
|
|
<!-- wood and plant matter -->
|
|
<Address name="mat_organics_all">0x16afd1C</Address>
|
|
|
|
<!-- plant matter -->
|
|
<Address name="mat_organics_plants">0x16afd34</Address>
|
|
|
|
<!-- maybe maps beween organics_all and organics_plants -->
|
|
<Address name="mat_unk1_numbers">0x16afd4C</Address>
|
|
|
|
<!-- wood -->
|
|
<Address name="mat_organics_trees">0x16afd64</Address>
|
|
|
|
<!-- maybe maps beween organics_all and organics_trees -->
|
|
<Address name="mat_unk2_numbers">0x16afd7C</Address>
|
|
|
|
<!-- body material stuff -->
|
|
<Address name="mat_body_material_templates">0x16AFD94</Address>
|
|
<Address name="mat_body_detail_plans">0x16AFDAC</Address>
|
|
<Address name="mat_bodies">0x16AFDC4</Address>
|
|
<Address name="mat_bodygloss">0x16AFDDC</Address>
|
|
<Address name="mat_creature_variations">0x16AFDF4</Address>
|
|
|
|
<!-- *raw* creature types -->
|
|
<Address name="mat_creature_types">0x16AFE0C</Address>
|
|
<!-- creature types actually used for creatures? -->
|
|
<Address name="creature_type_vector">0x016AFE58</Address>
|
|
<!--<Address name="mat_creature_types2">0x16AEE08</Address>-->
|
|
|
|
|
|
Constructions
|
|
=============
|
|
<Address name="construction_vector">0x165b290</Address>
|
|
<Offset name="sizeof_construction">0x14</Offset>
|
|
|
|
Translations
|
|
============
|
|
<Address name="language_vector">0x016AFFD8</Address>
|
|
<Address name="translation_vector">0x016B0008</Address>
|
|
<Offset name="word_table">0x4C</Offset>
|
|
|
|
Vegetation
|
|
==========
|
|
<Address name="vegetation_vector">0x0167030C</Address> belal: 0x017f6d98 ... what?
|
|
<Offset name="tree_desc_offset">0x6C</Offset>
|
|
|
|
Buildings
|
|
=========
|
|
<Address name="buildings_vector">0x0166f9a0</Address>
|
|
|
|
Effects
|
|
=======
|
|
|
|
:(
|
|
|
|
Settlements
|
|
===========
|
|
|
|
:(
|
|
|
|
Hotkeys
|
|
=======
|
|
<Address name="hotkey_start">0x01476ecc</Address>
|
|
<Offset name="hotkey_mode">0x1C</Offset>
|
|
<Offset name="hotkey_xyz">0x20</Offset>
|
|
<HexValue name="hotkey_size">0x2C</HexValue>
|
|
|
|
<!--
|
|
addresses from belal: vectors might need 8 subtracted from them
|
|
buildings 0x0166f9a8
|
|
constructions 0xffffffff
|
|
creatures 0x0166eccc
|
|
current_cursor_creature 0x00ae82cc
|
|
current_menu_state 0x017f6f38
|
|
cursor_xyz 0x0166ecd4
|
|
effects_vector 0x017f6da0
|
|
hotkey_start 0x01476ecc
|
|
items 0x0166eda8
|
|
language_vector 0x016affe0
|
|
map_data 0x016ad718
|
|
matgloss 0xffffffff
|
|
notes 0x01474de8
|
|
pause_state 0x0146e45f
|
|
region_x 0x016ad750
|
|
region_y 0x016ad754
|
|
region_z 0x016ad758
|
|
settlement_current 0xffffffff
|
|
settlements 0x016af4a4
|
|
translation_vector 0x016b0010
|
|
view_screen 0xffffffff
|
|
window_dims 0x017f5abc
|
|
window_x 0x00e32798
|
|
window_y 0x00e60838
|
|
window_z 0x00e60814
|
|
world 0x016aed50
|
|
x_count 0x016ad738
|
|
y_count 0x016ad73c
|
|
z_count 0x016ad740
|
|
-->
|
|
|
|
<!--
|
|
<Address name="buildings">0x09008880</Address>
|
|
<Address name="constructions">0x08ff4a58</Address>
|
|
<Address name="creatures">0x0900839C</Address>
|
|
<Address name="current_cursor_creature">0x08fe3908</Address>
|
|
<Address name="current_menu_state">0x08ff4900</Address>
|
|
<Address name="cursor_xyz">0x08832328</Address>
|
|
<Address name="effects_vector">0x089ed3f8</Address>
|
|
<Address name="hotkey_start">0x08ff47ac</Address>
|
|
<Address name="items">0x0900840c</Address>
|
|
<Address name="language_vector">0x0904accc</Address>
|
|
<Address name="map_data">0x09048cfc</Address>
|
|
<Address name="matgloss">0x0904abc4</Address>
|
|
<Address name="notes">0x08ff4784</Address>
|
|
<Address name="pause_state">0xc60008fe</Address>
|
|
<Address name="region_x">0x09048d28</Address>
|
|
<Address name="region_y">0x09048d2c</Address>
|
|
<Address name="region_z">0x09048d30</Address>
|
|
<Address name="settlement_current">0x0904a908</Address>
|
|
<Address name="settlements">0x0904a89c</Address>
|
|
<Address name="translation_vector">0x0904ace4</Address>
|
|
<Address name="vegetation">0x0900b9d0</Address>
|
|
<Address name="view_screen">0x08832a60</Address>
|
|
<Address name="window_dims">0x091995fc</Address>
|
|
<Address name="window_x">0x089edd14</Address>
|
|
<Address name="window_y">0x089edd18</Address>
|
|
<Address name="window_z">0x089edd1c</Address>
|
|
<Address name="world">0x0904a328</Address>
|
|
<Address name="x_count">0x09048d10</Address>
|
|
<Address name="y_count">0x09048d14</Address>
|
|
<Address name="z_count">0x09048d18</Address>
|
|
-->
|
|
</Entry>
|
|
<Entry version="v0.31.02" os="windows" id="0.31.02" base="0.31.01">
|
|
<String name="md5">23dfe141c7ea4e63ebb3c618a12b48ec</String>
|
|
<HexValue name="pe_timestamp">0x4BBDF378</HexValue>
|
|
</Entry>
|
|
.-"""-.
|
|
' \
|
|
|,. ,-. | _________________________
|
|
|()L( ()| | \ \
|
|
|,' `".| | /_ Nothing here yet :( \
|
|
|.___.',| ` \________________________\
|
|
.j `--"' ` `.
|
|
/ ' ' \
|
|
/ / ` `.
|
|
/ / ` .
|
|
/ / l |
|
|
. , L I N U X | |
|
|
,"`. .| |
|
|
_.' ``. | `..-'l
|
|
| `.`, | `.
|
|
| `. __.j )
|
|
|__ |--""___| ,-'
|
|
`"--...,+"""" `._,.-'
|
|
|
|
|
|
<!-- Windows logo by Microsoft -->
|
|
<!-- Tux logo by the Linux guys :) -->
|
|
</MemoryDescriptors>
|
|
</DFExtractor>
|
|
|
|
|