dfhack/output/Memory.xml

3125 lines
125 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="ARCHITECT">60</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="ADMINISTRATOR">58</Profession>
<Profession can_assign_labors="true" is_military="false" name="TRADER">59</Profession>
<Profession can_assign_labors="true" is_military="false" name="ALCHEMIST">61</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_workshop" typeoffset="0xC8">
<class name="building_alchemists_laboratory" type="0x0"/>
</multiclass>
<class name="building_construction"/>
</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>
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>
<Offset name="creature_name">0x0</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_artifact_name">0x6D0</Offset>
<Offset name="creature_labors">0x770</Offset>
<Offset name="creature_happiness">0x830</Offset>
<!-- from DT -->
<Address name="dwarf_race_index">0x01470fbc</Address>DWORD, OK
This seems to be wrong:
creature_vector = 0x0166ed2c
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 -->
<Address name="mat_system_start">0x16afcec</Address>
<Address name="mat_templates">0x16afcec</Address>
<!-- soil, stone, metal -->
<Address name="mat_inorganics">0x16afd04</Address>
<!-- 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>-->
<!-- possible constructions -->
<Address name="construction_vector">0x165b290</Address>
<Offset name="sizeof_construction">0x14</Offset>
Translations
============
<Address name="language_vector">0x016B0008</Address>
<Address name="translation_vector">0x016AFFD8</Address>
<Offset name="word_table">0x58</Offset>
<!--
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
vegetation 0x017f6da0
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>
.-"""-.
' \
|,. ,-. | _________________________
|()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>