40d:Memory hacking/v0.27.169.33c

From Dwarf Fortress Wiki
Jump to: navigation, search

Contents


[edit] Addresses

Feel free to format nicely:

pe_header_timestamp              == 47480E76
map_data_loc                     == 0145F560
map_x_count_loc                  == 0145F578
map_y_count_loc                  == 0145F57C
map_z_count_loc                  == 0145F580
race_data_vector_loc             == 01460F40
dwarven_race_index_loc           == 0123EAC8
main_creature_vector_loc         == 0141DA30
another_creature_vector_loc      == 0141DA40
yet_another_creature_vector_loc  == 0141DA80
whathe_another_creature_vector_loc == 0141DA10
number_of_dwarves_loc            == 00789315
initial_starting_points_loc      == 007884CA
art_defacement_malus_loc         == 007A301F
current_unit_focus_loc           == 00C36540
next_creature_id_loc             == 00C0E9EC
language_vector_loc              == 01461060
starting_skills_limit_loc        == 00785314
starting_skills_increment_loc    == 0078522F
starting_skills_decrement_loc    == 007853D1

Be advised that creature.happiness_level is now at offset 0x508, implying that a new dword field has been added to the object.

creature.professionlist is now at 0x45c

[edit] Game Structures

[edit] Creature Structures

Be warned that this information is out of date while Rick updates it. Some updates by bartavelle

[edit] Creature Structure

Total of 0x664 bytes for the structure.

Offset Size Type Name Notes
0x0000 28 string First name
0x001C 28 string Nickname
0x0038 28 Name of the dwarf, list of indexes to the language table, ends with 0xffffffff The language tables are in vector 0x1462060, index = 0 is dwarfish, points to a vector of strings
0x0054 14
0x0064 4
0x0068 2
0x006A 1 byte Seems to denote whether or not this creature has a custom nickname/profession name? Something like that.
0x006C 28 string Custom profession name
0x0088 2 short Type ID #1 Dwarf types. 0x88 is the original dwarf type, 0x8a is the current dwarf type (I'm told Toady stores the original dwarf type for legends). The key is in the "Type ID" table, woefully incomplete.

(Sphr: I actually found that in 33b, 0x88 is the current type while 0x8a is the original type. Needs to be double verified by somebody else.)

0x008A 2 short Type ID #2
0x008C 4 long Creature race 0xA6 is the dwarf default (this may be different if the user has a mod installed)
0x0090 2
0x0092 2
0x0094 2 short X position Current X coordinate of creature (0x00AC is some other X coordinate)
0x0096 2 short Y position Current Y coordinate of creature
0x0098 2 short Z position Current Z coordinate of creature
0x009A 2
0x009C 2
0x009E 2
0x00A0 4
0x00A4 2
0x00A8 4
0x00AC 2 short X coordinate
0x00AE 2 short Y coordinate
0x00B0 2 short Z coordinate
0x00B2 2
0x00B4 16 vector of shorts
0x00C4 16 vector of shorts
0x00D4 16 vector of shorts
0x00E4 4 ulong Flags
Flag Description
0x2 1 << 1 Unclear. It is set on dead things. Also, when a merchant caravan arrives, merchants and guards are added to the entity list slightly before they are added to the "u" list - during this period, this bit is set.


0x4 berserk/melancholy/crazy


0x8 creator of some artifact
0x40 diplomat or merchant or something?
0x800 diplomat or merchant or something?
0x1000 Zombie


0x2000 Skeleton (skeleton or zombie counts as undead)
0x20000 / 0x80000 / 0xc0000 Invader


0x4000000 Tame
0x10000000 Royal Guard
0x10000000 Fortress Guard
0x00E8 4 ulong Flags
Flag Description
0x8 1 << 3 Unknown, something to do with 0x0324.


0x80 1 << 7 Appears to be whether or not the creature is dead.
0x8000 On the ground
0x10000 Flying


0x20000 1 << 17 Ready for slaughter.
0x40000 From the underworld
0x00EC 1
0x00EE 2
0x00F0 2
0x00F2 1 byte Gender
Value Description
0 It
1 Male
2 Female
0x00F4 4 long Creature ID When a new creature is added to the creature vector at 0x01416A38, it is assigned the value of the next creature ID and the next creature ID value is then increased by 1. This value most likely does NOT persist between loading games (eg, saving then loading your game and creatures will have different IDs).
0x00F8 2
0x00FC 4
0x0100 4 Long Civilization
0x0104 16 vector of shorts
0x0114 16 vector of shorts
0x0124 16 vector of shorts
0x0134 4
0x0138 16 vector of ...something...
0x01C4 1
0x01C5 1
0x01C8 4
0x01CC 4
0x01D0 4
0x01D4 2
0x01D6 2
0x01D8 2
0x01DC 4
0x01E0 2 + 2 + 2 + 4 + 4 Unknown structure.
0x01F0 4
0x01F4 4
0x01F8 2 short Strange mood 0xFFFF means no mood
0x01FA 2
0x01FC 4
0x0200 4
0x0204 4
0x0208 4
0x020C 4 ptr Pointer to the owner's creature struct Work animal related
0x0210 4 Long Set to 0 for assigned war creatures Work animal related
0x0214 2 Short Id of the owner Work animal related
0x0238 2
0x023A 2
0x023C 16 vector of pointers to 238 struct Possibly inventory?
0x024C 16 vector of longs Owned objects Each long is an index into the item vector.
0x028C 16 vector of longs
0x029C 4 Signed Long Money Bank account
0x02A0 4
0x02A4 4 pointer Appears to be a pointer to another creature.
0x02A8 4 pointer It's a pointer to something, don't know what yet.
0x02AC 2
0x02AE 2
0x02B0 2
0x02B2 2
0x02B4 2
0x02B8 4
0x02BC 16 vector of shorts
0x02CC 16 vector of shorts
0x02DC 16 vector of shorts
0x02EC 16 vector of shorts
0x02FC 2
0x0300 4
0x0304 4
0x0308 16 vector of shorts Bodypart Health A list to body part health, the list of ushorts, values range 0 to 15 from what i've seen. 15 being white, 0 being red.
0x0318 16 vector of longs Bodypart related.
0x032C 2
0x0330 4
0x0334 4
0x0338 4
0x033C 4 long Bleeding level
0x0340 4
0x0344 4
0x0348 4
0x034C 4
0x0350 2
0x0352 2 short Nauseousness
0x0354 2 short Drowning
0x0356 2 short Stunned
0x0358 2
0x035A 2
0x035C 2 short Webbed How much a creature is webbed
0x035E 2 short Paralysis
0x0360 12
0x036C 2
0x036E 2
0x0370 4 long Pain level
0x0374 4 long Exhaustion
0x0378 4 long Hunger
0x037C 4 long Thirst
0x0380 4 long Drowsiness
0x0384 4
0x0388 16 vector of pointers to 384 struct
0x0398 16 vector of pointers to 394 struct
0x03A8 4
0x03AC 4
0x03B0 1
0x0420 4 Strength
Value Name
0 Nothing
1 Strong
2 Very Strong
3 Extremely Strong
4 Mighty
5 Ultra-Mighty
0x0424 4 Agility
Value Name
0 Nothing
1 Agile
2 Very Agile
3 Extremely Agile
4 Unbelievably Agile
5 Perfectly Agile
0x0428 4 Toughness
Value Name
0 Nothing
1 Tough
2 Very Tough
3 Extremely Tough
4 Unbelievably Tough
5 Superdwarvenly Tough
0x042C 16 vector of pointers to skill struct Skills
0x043C 16 vector of pointers to like struct Likes
0x044C 16 vector of pointers to 448 struct
0x045C 102 bytes Labor preferences 102 1 byte values, corresponding to the profession list. Mostly bools, with notable exceptions of shieldtype,armortype, and weaponnum. "Weaponnum" may be the number of weapons wielded (i.e. 2 for a dual-wielding character.)
0x04C4 4 Total XP
0x04C8 16 vector of pointers to 4C4 struct
0x04D8 16 vector of longs
0x04E8 16 vector of pointers to 4E4 struct Recent events
0x04F8 16 vector of pointers to 4F4 struct
0x0508 4 Happiness level 0 = miserable, >149 = ecstatic
0x050C 2
0x0510 16 vector of pointers to 50C struct
0x0520 16 vector of pointers to 51C struct
0x0530 16 vector of pointers to 52C struct
0x0540 16 vector of pointers to 53C struct
0x0550 2
0x0554 4
0x0558 4
0x055C 4
0x0560 16 vector of longs
0x0570 16 vector of longs
0x0580 16 vector of longs
0x0590 4 CreatureID Probable internal ID used by 0x41CD60 in v0.27.169.33d
0x0594 2
0x0596 2
0x0598 2
0x059A 2
0x05A0 2
0x059E 2
0x05A0 4
0x05A4 16 vector of pointers to 5A0 struct Bodypart related.
0x05B4 4
0x05B8 60 trait struct Traits
0x05F4 4
0x05F8 1

[edit] Skill Structure

Offset Size Type Name Notes
0x0000 2 short Skill type
0x0004 4 long Skill rating The upper word is the actual rating (0:Dabbling to 15:Legendary). The lower word does not seem to fluctuate.
0x0008 4 long XP Actual XP in that skill

[edit] Like Structure

Offset Size Type Name Notes
0x0000 2 short
0x0002 2 short
0x0004 2 short
0x0006 2 short Object type? 0=wood, 1=rocks, ...
0x0008 2 short Material? when stuff at 0x4 is 1, this controls the rock type
0x000A 1 byte 'When possible'
0x000C 4 long Padding Not used

[edit] Trait Structure

Offset Size Type Name Notes
0x0000 2 short Nervousness Out of 100?
Value Description
91 - 100 Is a nervous wreck.
76 - 90 Is always tense and jittery.
61 - 75 Is often nervous.
25 - 60 Has a calm demeanor.
10 - 24 Has a very calm demeanor.
0 - 9 Has an incredibly calm demeanor.
0x0002 2 short Rage Out of 100?
Value Description
91 - 100 Is in a constant state of internal rage.
76 - 90 Is very quick to anger.
61 - 75 Is quick to anger.
25 - 60 Is slow to anger.
10 - 24 Is very slow to anger.
0 - 9 Never becomes angry.
0x0004 2 short Depression Out of 100?
Value Description
91 - 100 Is frequently depressed.
76 - 90 Is often sad and dejected.
61 - 75 Often feels discouraged.
25 - 60 Rarely feels discouraged.
10 - 24 Almost never feels discouraged.
0 - 9 Never feels discouraged.
0x0006 2 short Self-consciousness Out of 100?
Value Description
91 - 100 Is socially crippled by thoughts that everyone is watching and judging it/him/her.
76 - 90 Is concerned about rejection and ridicule.
61 - 75 Is self-conscious.
25 - 60 Is comfortable in social situations.
10 - 24 Is very comfortable in social situations.
0 - 9 Is absolutely unfazed by the opinions of others.
0x0008 2 short Urge Out of 100?
Value Description
91 - 100 Is ruled by irresistible cravings and urges.
76 - 90 Feels strong urges and seeks short-term rewards.
61 - 75 Occassionally overindulges.
25 - 60 Doesn't often experience strong cravings or urges.
10 - 24 Only rarely feels strong cravings or urges.
0 - 9 Never feels tempted to overindulge in anything.
0x000A 2 short Stress Out of 100?
Value Description
91 - 100 Becomes completely helpless in stressful situations.
76 - 90 Cracks easily under pressure.
61 - 75 Doesn't handle stress well.
25 - 60 Can handle stress.
10 - 24 Is confident under pressure.
0 - 9 Is impervious to the effects of stress.
0x000C 2 short Friendly Out of 100?
Value Description
91 - 100 Genuinely likes others and openly expresses positive feelings toward them.
76 - 90 Makes friends quickly.
61 - 75 Is very friendly.
25 - 60 Is somewhat reserved.
10 - 24 Is very distant and reserved.
0 - 9 Does not actively seek friendships and is incredibly distant and reserved.
0x000E 2 short Company Out of 100?
Value Description
91 - 100 Truly treasures the company of others.
76 - 90 Enjoys being in crowds.
61 - 75 Enjoys the company of others.
25 - 60 Tends to avoid crowds.
10 - 24 Prefers to be alone.
0 - 9 Considers spending time alone much more important than associating with others.
0x0010 2 short Leadership Out of 100?
Value Description
91 - 100 Loves to take charge and direct activities.
76 - 90 Is very assertive.
61 - 75 Is assertive.
25 - 60 Is unassertive.
10 - 24 Prefers that others handle the leadership roles.
0 - 9 Never speaks out or attempts to direct activities.
0x0012 2 short Activeness Out of 100?
Value Description
91 - 100 Is constantly active and energetic.
76 - 90 Is very energetic and active.
61 - 75 Is very active.
25 - 60 Is relaxed.
10 - 24 Lives life at a leisurely pace.
0 - 9 Can't be bothered with frantic, fast-paced living.
0x0014 2 short Thrillseeking Out of 100?
Value Description
91 - 100 Lives for risk and excitement.
76 - 90 Is a risk-taker and a thrill-seeker.
61 - 75 Loves a good thrill.
25 - 60 Is not a risk-taker.
10 - 24 Doesn't need thrills or risks in life.
0 - 9 Is entirely adverse to risk and excitement.
0x0016 2 short Optimism Out of 100?
Value Description
91 - 100 Often feels filled with joy.
76 - 90 Can be very happy and optimistic.
61 - 75 Is often cheerful.
25 - 60 Is rarely happy or enthusiastic.
10 - 24 Is a pessimist.
0 - 9 Is never optimistic or enthusiastic about anything.
0x0018 2 short Imagination Out of 100?
Value Description
91 - 100 Is bored by reality and has a wonderful imagination.
76 - 90 Is incredibly creative.
61 - 75 Has a fertile imagination.
25 - 60 Isn't given to flights of fancy.
10 - 24 Is grounded in reality.
0 - 9 Is interested only in facts and the real world.
0x001A 2 short Artistic? Out of 100?
Value Description
91 - 100 Can easily become absorbed in art and the beauty of the natural world.
76 - 90 Greatly appreciates art and natural beauty.
61 - 75 Appreciates art and natural beauty.
25 - 60 Does not have a great aesthetic sensitivity.
10 - 24 Is not interested in art.
0 - 9 Is completely uninterested in art.
0x001C 2 short Emotion Out of 100?
Value Description
91 - 100 Has a profound understanding of its/his/her own emotions.
76 - 90 Has a great awareness of its/his/her own emotions.
61 - 75 Has a good awareness of its/his/her own emotions.
25 - 60 Tends not to openly express emotions.
10 - 24 Is mostly unaware of its/his/her own emotions and rarely expresses them.
0 - 9 Does not display its/his/her own emotions and has no awareness of them.
0x001E 2 short Adventure Out of 100?
Value Description
91 - 100 Is highly adventurous and loves fresh experiences.
76 - 90 Is eager for new experiences.
61 - 75 Likes to try new things.
25 - 60 Prefers familiar routines.
10 - 24 Is uncomfortable with change.
0 - 9 Is resistant to change.
0x0020 2 short Thinking Out of 100?
Value Description
91 - 100 Is entranced by riddles and puzzles and loves to debate issues and ideas.
76 - 90 Loves new and fresh ideas.
61 - 75 Is open-minded to new ideas.
25 - 60 Dislikes intellectual discussions.
10 - 24 Regards intellectual exercises as a waste of energy.
0 - 9 Is completely uninterested in ideas and debates over intellectual issues.
0x0022 2 short Rebelliousness Out of 100?
Value Description
91 - 100 Revels in chaos and disorder.
76 - 90 Loves to defy convention.
61 - 75 Is put off by authority and tradition.
25 - 60 Admires tradition.
10 - 24 Prefers stability and security to ambiguity and disorder.
0 - 9 Is an ardent believer in convention and traditional society.
0x0024 2 short Trusting Out of 100?
Value Description
91 - 100 Is naturally trustful of everybody.
76 - 90 Is very trusting.
61 - 75 Is trusting.
25 - 60 Is slow to trust others.
10 - 24 Does not trust others.
0 - 9 Sees others as selfish and conniving.
0x0026 2 short Liar Out of 100?
Value Description
91 - 100 Is incredibly frank and candid in dealings with others.
76 - 90 Is very straightforward with others.
61 - 75 Is candid and sincere in dealings with others.
25 - 60 Is guarded in relationships with others.
10 - 24 Is not straightforward when dealing with others.
0 - 9 Believes that some deception is necessary in relationships with others.
0x0028 2 short Helpfulness Out of 100?
Value Description
91 - 100 Is truly fulfilled by assisting those in need.
76 - 90 Finds helping others very rewarding.
61 - 75 Finds helping others rewarding.
25 - 60 Does not go out of its/his/her way to help others.
10 - 24 Dislikes helping others.
0 - 9 Views helping others as an imposition on own needs to get along with others.
0x002A 2 short Compromising Out of 100?
Value Description
91 - 100 Sacrifices its/his/her own needs to get along with others.
76 - 90 Dislikes confrontations.
61 - 75 Is willing to compromise with others.
25 - 60 Doesn't like to compromise with others.
10 - 24 Would rather intimidate others than compromise with them.
0 - 9 Would never deny its/his/her own needs just to compromise with somebody else.
0x002C 2 short Modesty Out of 100?
Value Description
91 - 100 Would never claim to be better than somebody else.
76 - 90 Finds immodesty distasteful.
61 - 75 Is modest.
25 - 60 Is immodest.
10 - 24 Is very willing to compare itself/himself/herself favorably with others.
0 - 9 Would never shy away from an opportunity to say it/he/she is better than somebody else.
0x002E 2 short Compassion Out of 100?
Value Description
91 - 100 Is incredibly compassionate and feels the pain of others.
76 - 90 Is easily moved to pity.
61 - 75 Is compassionate.
25 - 60 Is not easily moved to pity.
10 - 24 Is not affected by the suffering of others.
0 - 9 Would never let an objective judgement be tempered by mercy or pity.
0x0030 2 short Confidence Out of 100?
Value Description
91 - 100 is incredibly confident
76 - 90 is very confident
61 - 75 is confident
25 - 60 lacks confidence
10 - 24 does not feel effective in life
0 - 9 always feels as if it/he/she is not in control of its/his/her life
0x0032 2 short Organization Out of 100?
Value Description
91 - 100 Loves to make lists and keep schedules.
76 - 90 Tries to live a well-organized life.
61 - 75 Is organized.
25 - 60 Is disorganized.
10 - 24 Is very disorganized.
0 - 9 Is completely disorganized.
0x0034 2 short Lawfulness? Out of 100?
Value Description
91 - 100 Has a profound sense of duty and obligation.
76 - 90 Has a strong sense of duty.
61 - 75 Has a sense of duty.
25 - 60 Finds rules confining.
10 - 24 Dislikes contracts and regulations.
0 - 9 Hates rules, contracts and other confining elements in its/his/her life.
0x0036 2 short Excellence Out of 100?
Value Description
91 - 100 Constantly strives for perfection.
76 - 90 Thinks it is incredibly important to strive for excellence.
61 - 75 Strives for excellence.
25 - 60 Doesn't go out of its/his/her way to do more work than necessary.
10 - 24 Very rarely does more work than necessary.
0 - 9 Does the bare minimum necessary to accomplish the task at hand.
0x0038 2 short Willpower Out of 100?
Value Description
91 - 100 Will persist in the face of any difficulty until the task is complete.
76 - 90 Possesses great willpower.
61 - 75 Is self-disciplined.
25 - 60 Is occasionally given to procrastination.
10 - 24 Has very little self-discipline.
0 - 9 Rarely completes tasks and is often overcome by distractions.
0x003A 2 short Cautiousness Out of 100?
Value Description
91 - 100 thinks through every alternatives and their consequences before acting
76 - 90 is extremely cautious
61 - 75 takes time when making decisions
25 - 60 often does the first thing that comes to mind
10 - 24 acts impulsively
0 - 9 always acts without considering alternatives or thinking through possibilities

[edit] 238 Structure

Offset Size Type Name Notes
0x0000 4 long
0x0004 2 short
0x0006 2 short
0x0008 4 long

[edit] 384 Structure

Offset Size Type Name Notes
0x0000 2 short
0x0002 2 short
0x0004 2 short
0x0008 4 long
0x000C 2 short
0x000E 2 short

[edit] 394 Structure

Offset Size Type Name Notes
0x0000 2 short ID ID11=last drink time
0x0004 4 long Value

[edit] 448 Structure

Offset Size Type Name Notes
0x0000 2 short
0x0002 2 short
0x0004 2 short
0x0006 2 short
0x0008 2 short
0x000A 2 short
0x000C 4 long
0x0010 4 long

[edit] 4C4 Structure

Offset Size Type Name Notes
0x0000 4 long
0x0004 4 long
0x0008 4 long
0x000C 4 long
0x0010 4 long
0x0014 4 long
0x0018 4 long
0x001C 2 short
0x0020 1 byte

[edit] 4E4 Structure (recent events)

Offset Size Type Name Notes
0x0000 2 short Event type details @ 7D1AF0
0x0004 4 long
0x0008 2 short
0x000C 4 long

[edit] 4F4 Structure

Offset Size Type Name Notes
0x0000 2 short
0x0004 4 long
0x0008 2 short
0x000C 4 long

[edit] 50C Structure

Offset Size Type Name Notes
0x0000 2 short
0x0002 2 short
0x0004 4 long

[edit] 51C Structure

Offset Size Type Name Notes
0x0000 2 short
0x0002 2 short
0x0004 2 short

[edit] 52C Structure

Offset Size Type Name Notes
0x0000 4 long
0x0004 4 long
0x0008 4 long
0x000C 4 long

[edit] 53C Structure

Offset Size Type Name Notes
0x0000 4 long
0x0004 4 long

[edit] 5A0 Structure

Offset Size Type Name Notes
0x0000 2 short
0x0002 2 short
Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox
Advertisement