summaryrefslogtreecommitdiff
path: root/reverse-engineering/dosbox_snif/dos_lemm.h
diff options
context:
space:
mode:
Diffstat (limited to 'reverse-engineering/dosbox_snif/dos_lemm.h')
-rw-r--r--reverse-engineering/dosbox_snif/dos_lemm.h59
1 files changed, 30 insertions, 29 deletions
diff --git a/reverse-engineering/dosbox_snif/dos_lemm.h b/reverse-engineering/dosbox_snif/dos_lemm.h
index f6c7c95..af07f61 100644
--- a/reverse-engineering/dosbox_snif/dos_lemm.h
+++ b/reverse-engineering/dosbox_snif/dos_lemm.h
@@ -1,6 +1,7 @@
#ifndef _DOS_LEMM_H
#define _DOS_LEMM_H
+#include <stdint.h>
struct _state {
uint8_t s_splatting:1; //0x01
@@ -59,9 +60,9 @@ union flags1 {
};
enum flags1_masks {
- fl1_cap_climber = 0x01;
- fl1_walk_pause_for_shruggling = 0x80;
-}
+ fl1_cap_climber = 0x01,
+ fl1_walk_pause_for_shruggling = 0x80
+};
struct _lemm_data {
/* First lemm is at ds:si == 0b55:0085 */
@@ -70,15 +71,15 @@ struct _lemm_data {
int16_t x_spr_offset; //0x4 - 0x5
int16_t y_spr_offset; //0x6 - 0x7
union state state; //0x8 - 0x9
- uint8_t b_10,b_11;
+ uint8_t unk1[0x2];
uint16_t spr_data_ptr; //0xc - 0xd
uint8_t floattime_dble; //0xe
- uint8_t b_15,b_16,b_17,b_18,b_19;
+ uint8_t unk2[0x5];
uint16_t ptr2; //0x14 - 0x15
- uint8_t b_22,b_23,b_24,b_25,b_26,b_27,b_28,b_29,b_30,b_31;
+ uint8_t unk3[0xa];
uint8_t expl_countdown; //0x20
uint8_t steps_remain; //0x21
- uint8_t b_34;
+ uint8_t unk4;
uint8_t falldist; //0x23
union flags1 flags1; //0x24
uint8_t cap_floater; //0x25
@@ -86,7 +87,7 @@ struct _lemm_data {
int8_t direction; //0x27
uint8_t spr_frame; //0x28
uint8_t draw_hint; //0x29
- uint8_t b_42,b_43,b_44;
+ uint8_t unk5[0x3];
} __attribute__ ((__packed__));
union lemm_data {
@@ -100,32 +101,32 @@ enum draw_hint {
};
struct _avail_skills {
- uint8 sk_climber, sk_climber2, sk_climber_tag; // [0x67]
- uint8 sk_floater, sk_floater2, sk_floater_tag; // [0x6a]
- uint8 sk_bomber, sk_bomber2, sk_bomber_tag; // [0x6d]
- uint8 sk_blocker, sk_blocker2, sk_blocker_tag; // [0x70]
- uint8 sk_builder, sk_builder2, sk_builder_tag; // [0x73]
- uint8 sk_basher, sk_basher2, sk_basher_tag; // [0x76]
- uint8 sk_miner, sk_miner2, sk_miner_tag; // [0x79]
- uint8 sk_digger, sk_digger2, sk_digger_tag; // [0x7c]
+ uint8_t sk_climber, sk_climber2, sk_climber_tag; // [0x67]
+ uint8_t sk_floater, sk_floater2, sk_floater_tag; // [0x6a]
+ uint8_t sk_bomber, sk_bomber2, sk_bomber_tag ; // [0x6d]
+ uint8_t sk_blocker, sk_blocker2, sk_blocker_tag; // [0x70]
+ uint8_t sk_builder, sk_builder2, sk_builder_tag; // [0x73]
+ uint8_t sk_basher, sk_basher2, sk_basher_tag; // [0x76]
+ uint8_t sk_miner, sk_miner2, sk_miner_tag; // [0x79]
+ uint8_t sk_digger, sk_digger2, sk_digger_tag; // [0x7c]
} __attribute__ ((__packed__));
struct game_data {
/* ds == 0x0b55 */
- uint8 unk1[0x27]; // TODO
- uint8 paused; // [0x28]
- uint8 unk2[0x10]; // TODO
- uint8 lemm_count_to_process; // [0x39]
- uint8 lemm_spawned_count; // [0x40]
- uint8 unk3; // TODO
- uint8 lemm_out_count; // [0x42]
- uint8 unk4; // TODO
- uint8 lemm_level_count; // [0x44]
- uint8 next_spawn_ticks; // [0x45]
- uint8 spawn_rate_ticks; // [0x46]
- uint8 unk5[0x20]; // TODO
+ uint8_t unk1[0x27]; // TODO
+ uint8_t paused; // [0x28]
+ uint8_t unk2[0x10]; // TODO
+ uint8_t lemm_count_to_process; // [0x39]
+ uint8_t lemm_spawned_count; // [0x40]
+ uint8_t unk3; // TODO
+ uint8_t lemm_out_count; // [0x42]
+ uint8_t unk4; // TODO
+ uint8_t lemm_level_count; // [0x44]
+ uint8_t next_spawn_ticks; // [0x45]
+ uint8_t spawn_rate_ticks; // [0x46]
+ uint8_t unk5[0x20]; // TODO
struct _avail_skills avail_skills; // [0x67] - [0x7e]
- uint8 unk6[0x06]; // TODO
+ uint8_t unk6[0x06]; // TODO
struct _lemm_data lemmings[100]; // [0x85]
} __attribute__ ((__packed__));