mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-11-05 11:06:53 +00:00
f4797184b3
this means you can in theory lose the game now
429 lines
9.7 KiB
HTML
429 lines
9.7 KiB
HTML
;=============================
|
|
; common stuff
|
|
|
|
;===============================================
|
|
; level data structure definitions
|
|
;===============================================
|
|
; 24 bytes each location
|
|
; we put special at end as it's ignored if not set
|
|
|
|
LOCATION_NORTH_EXIT=0 ; new room when heading north
|
|
LOCATION_SOUTH_EXIT=1 ; new room when heading south
|
|
LOCATION_EAST_EXIT=2 ; new room when heading east
|
|
LOCATION_WEST_EXIT=3 ; new room when heading west
|
|
LOCATION_NORTH_EXIT_DIR=4 ; direction faced in new room when N
|
|
LOCATION_SOUTH_EXIT_DIR=5 ; direction faced in new room when S
|
|
LOCATION_EAST_EXIT_DIR=6 ; direction faced in new room when E
|
|
LOCATION_WEST_EXIT_DIR=7 ; direction faced in new room when W
|
|
LOCATION_NORTH_BG=8 ; pointer to north background image
|
|
LOCATION_SOUTH_BG=10 ; pointer to south background image
|
|
LOCATION_EAST_BG=12 ; pointer to east background image
|
|
LOCATION_WEST_BG=14 ; pointer to west background image
|
|
LOCATION_BGS = 16 ; bitmap saying which backgrounds valid
|
|
BG_NORTH = 1
|
|
BG_SOUTH = 2
|
|
BG_WEST = 4
|
|
BG_EAST = 8
|
|
LOCATION_SPECIAL_EXIT=17 ; if we have something clickable
|
|
; $FF if not, direction if so
|
|
LOCATION_SPECIAL_X1=18 ; collision box for the thing to click
|
|
LOCATION_SPECIAL_X2=19
|
|
LOCATION_SPECIAL_Y1=20
|
|
LOCATION_SPECIAL_Y2=21
|
|
LOCATION_SPECIAL_FUNC=22 ; pointer-1 of function to call on click
|
|
|
|
|
|
;================================
|
|
; Loader definitions
|
|
|
|
LOAD_TITLE = 0
|
|
LOAD_MIST = 1
|
|
LOAD_MECHE = 2
|
|
LOAD_SELENA = 3
|
|
LOAD_OCTAGON = 4
|
|
LOAD_VIEWER = 5
|
|
LOAD_STONEY = 6
|
|
LOAD_CHANNEL = 7
|
|
LOAD_CABIN = 8
|
|
LOAD_DENTIST = 9
|
|
LOAD_ARBOR = 10
|
|
LOAD_SHIPUP = 11
|
|
LOAD_NIBEL = 12
|
|
LOAD_ENDING = 13
|
|
|
|
|
|
|
|
;================================
|
|
; Level definitions
|
|
|
|
; Title
|
|
|
|
TITLE_MIST_LINKING_DOCK = 0
|
|
|
|
; Mist
|
|
|
|
MIST_ARRIVAL_DOCK = 0
|
|
MIST_DOCK_SWITCH = 1
|
|
MIST_DOCK_STEPS = 2
|
|
MIST_ABOVE_DOCK = 3
|
|
MIST_BASE_STEPS = 4
|
|
MIST_STEPS_1ST_LANDING = 5
|
|
MIST_STEPS_2ND_LANDING = 6
|
|
MIST_STEPS_DENTIST = 7
|
|
MIST_STEPS_4TH_LANDING = 8
|
|
MIST_OUTSIDE_TEMPLE = 9
|
|
MIST_POOL = 10
|
|
MIST_CLOCK = 11
|
|
MIST_SPACESHIP_FAR = 12
|
|
MIST_TREE_CORRIDOR_2 = 13
|
|
MIST_TREE_CORRIDOR_5 = 14
|
|
MIST_GEAR = 15
|
|
MIST_GEAR_BASE = 16
|
|
MIST_CAT_LETTER = 17
|
|
MIST_SPACESHIP_SWITCH = 18
|
|
MIST_TREE_CORRIDOR_4 = 19
|
|
MIST_UNUSED = 20
|
|
MIST_CLOCK_PUZZLE = 21
|
|
MIST_CLOCK_ISLAND = 22
|
|
MIST_CLOCK_INSIDE = 23
|
|
MIST_OPEN_GEAR = 24
|
|
;MIST_CHAIR_VIEW = 25
|
|
MIST_GREEN_SHACK = 26
|
|
MIST_GREEN_STEPS1 = 27
|
|
MIST_GREEN_STEPS6 = 28
|
|
MIST_GENERATOR_DOOR = 29
|
|
MIST_GENERATOR_ROOM = 30
|
|
MIST_ROCKET_PATH_PAD = 31
|
|
MIST_ROCKET_CLOSE = 32
|
|
MIST_TOWER2_PATH = 33
|
|
MIST_TOWER2_BASE = 34
|
|
MIST_TOWER2_TOP = 35
|
|
MIST_TOWER1_TRAIL = 36
|
|
MIST_TOWER1_TRAIL2 = 37
|
|
MIST_TOWER1_BOTTOM = 38
|
|
MIST_TOWER1_TOP = 39
|
|
MIST_VIEWER_DOOR = 40
|
|
; re-use 20,25
|
|
|
|
; Mist Octagon Building
|
|
|
|
OCTAGON_TEMPLE_DOORWAY = 0
|
|
OCTAGON_TEMPLE_CENTER = 1
|
|
OCTAGON_RED_BOOKSHELF = 2
|
|
OCTAGON_FIREPLACE = 3
|
|
OCTAGON_IN_FIREPLACE = 4
|
|
OCTAGON_CEILING = 5
|
|
OCTAGON_MAP = 6
|
|
OCTAGON_FRAME_SHELF = 7
|
|
OCTAGON_BOOKSHELF = 8
|
|
OCTAGON_FRAME_DOOR = 9
|
|
OCTAGON_BLUE_BOOKSHELF = 10
|
|
OCTAGON_TOWER_ROTATION = 11
|
|
OCTAGON_BOOKSHELF_CLOSE = 12
|
|
OCTAGON_TOWER_HALL1 = 13
|
|
OCTAGON_TOWER_HALL2 = 14
|
|
OCTAGON_ELEVATOR_VIEW = 15
|
|
OCTAGON_ELEVATOR_OUT = 16
|
|
OCTAGON_ELEVATOR_OPEN = 17
|
|
OCTAGON_ELEVATOR_IN = 18
|
|
OCTAGON_TOWER_BOOK = 19
|
|
OCTAGON_BOOK_LADDER = 20
|
|
OCTAGON_BOOK_VIEW = 21
|
|
OCTAGON_TOWER_KEY = 22
|
|
OCTAGON_TOWER_LEFT = 23
|
|
OCTAGON_TOWER_RIGHT = 24
|
|
OCTAGON_KEY_LADDER = 25
|
|
OCTAGON_KEY_VIEW = 26
|
|
OCTAGON_RED_BOOK_CLOSED = 27
|
|
OCTAGON_RED_BOOK_OPEN = 28
|
|
OCTAGON_BLUE_BOOK_CLOSED= 29
|
|
OCTAGON_BLUE_BOOK_OPEN = 30
|
|
OCTAGON_RED_END = 31
|
|
OCTAGON_BLUE_END = 32
|
|
OCTAGON_GRID_BOOK = 33
|
|
OCTAGON_IN_FIREPLACE_CLOSED = 34
|
|
OCTAGON_FIREPLACE_SHELF = 35
|
|
OCTAGON_GREEN_BOOK = 36
|
|
OCTAGON_GREEN_BOOK_OPEN = 37
|
|
OCTAGON_DNI = 38
|
|
OCTAGON_DNI_DESK = 39
|
|
|
|
|
|
; Mechanical Engineering
|
|
|
|
MECHE_INSIDE_GEAR = 0
|
|
MECHE_CLOSED_BOOK = 1
|
|
MECHE_OPEN_BOOK = 2
|
|
MECHE_ARRIVAL = 3
|
|
MECHE_ENTRANCE = 4
|
|
MECHE_FORT_VIEW = 5
|
|
MECHE_BRIDGE2 = 6
|
|
MECHE_FORT_DOOR = 7
|
|
MECHE_FORT_ENTRY = 8
|
|
MECHE_WEST_PLATFORM = 9
|
|
MECHE_NORTH_PLATFORM = 10
|
|
MECHE_NORTH_HINT = 11
|
|
MECHE_NORTH_TOP = 12
|
|
MECHE_NORTH_DIP = 13
|
|
MECHE_LEFT_HALL2 = 14
|
|
MECHE_LEFT_HALL_CORNER = 15
|
|
MECHE_RED_ROOM_CENTER = 16
|
|
MECHE_CENTER_HALL = 17
|
|
MECHE_RED_BUTTON = 18
|
|
MECHE_BASEMENT = 19
|
|
MECHE_ELEVATOR_ROTATE = 20
|
|
MECHE_RIGHT_HALL2 = 21
|
|
MECHE_RIGHT_HALL_CORNER = 22
|
|
MECHE_BLUE_ROOM_CENTER = 23
|
|
MECHE_CENTER_HALL2 = 24
|
|
MECHE_ELEVATOR_PATH = 25
|
|
MECHE_IN_ELEVATOR = 26
|
|
MECHE_TOP_FLOOR = 27
|
|
MECHE_ROTATE_CONTROLS = 28
|
|
MECHE_EAST_PLATFORM = 29
|
|
MECHE_EAST_ARCH = 30
|
|
MECHE_EAST_TOP = 31
|
|
MECHE_EAST_HINT = 32
|
|
MECHE_EXIT_PUZZLE = 33
|
|
MECHE_BOOK_STAIRS = 34
|
|
MECHE_MIST_BOOK = 35
|
|
MECHE_MIST_CLOSED = 36
|
|
MECHE_MIST_OPEN = 37
|
|
MECHE_BLUE_SECRET_DOOR = 38
|
|
MECHE_BLUE_SECRET_ROOM = 39
|
|
MECHE_RED_SECRET_DOOR = 40
|
|
MECHE_RED_SECRET_ROOM = 41
|
|
|
|
|
|
|
|
|
|
; Selena Age
|
|
|
|
SELENA_INSIDE_SHIP = 0
|
|
SELENA_CONTROLS = 1
|
|
SELENA_ELECTRIC_ORGAN = 2
|
|
SELENA_WALKWAY1 = 3
|
|
SELENA_SPACESHIP_DOOR = 4
|
|
SELENA_WALKWAY4 = 5
|
|
SELENA_BUNKER = 6
|
|
SELENA_SUB_ROOM = 7
|
|
SELENA_BOOK_ROOM = 8
|
|
SELENA_BOOK_CLOSED = 9
|
|
SELENA_BOOK_OPEN = 10
|
|
SELENA_WATER_TURN = 11
|
|
SELENA_WATER_PATH = 12
|
|
SELENA_WATER = 13
|
|
SELENA_TOWER_VIEW = 14
|
|
SELENA_CHASM_PATH = 15
|
|
SELENA_CHASM = 16
|
|
SELENA_CLOCK_PATH = 17
|
|
SELENA_CLOCK = 18
|
|
SELENA_CLOCK_CLOSE = 19
|
|
SELENA_CLOCK_BEFORE = 20
|
|
SELENA_CRYSTAL_TURN = 21
|
|
SELENA_CRYSTAL_STEPS = 22
|
|
SELENA_CRYSTAL_PATH = 23
|
|
SELENA_CRYSTALS = 24
|
|
SELENA_CRYSTAL_CLOSE = 25
|
|
SELENA_SPACESHIP_PATH = 26
|
|
SELENA_BEFORE_CRYSTALS = 27
|
|
SELENA_TUNNEL_STEPS = 28
|
|
SELENA_TUNNEL_PATH = 29
|
|
SELENA_TUNNEL_MAINLAND = 30
|
|
SELENA_TUNNEL_MAIN_CLOSE= 31
|
|
SELENA_TUNNEL_MAIN_TOP = 32
|
|
SELENA_TUNNEL_MAIN_MID = 33
|
|
SELENA_TUNNEL_BASEMENT = 34
|
|
SELENA_TUNNEL = 35
|
|
SELENA_ANTENNA_BASEMENT = 36
|
|
SELENA_ANTENNA_MID = 37
|
|
SELENA_ANTENNA_TOP = 38
|
|
SELENA_ANTENNA_TUNNEL = 39
|
|
SELENA_ANTENNA_STEPS = 40
|
|
SELENA_ANTENNA = 41
|
|
SELENA_ANTENNA_OPEN = 42
|
|
SELENA_ANTENNA_CLOSE = 43
|
|
SELENA_BOOK_HALLWAY = 44
|
|
SELENA_INSIDE_SUB = 45
|
|
SELENA_SUB_HALLWAY = 46
|
|
SELENA_BUNKER_ENTRY = 47
|
|
SELENA_BUNKER_OPEN = 48
|
|
SELENA_BUNKER_KEYPAD = 49
|
|
|
|
; Viewer Room
|
|
|
|
VIEWER_STEPS = 0
|
|
VIEWER_POOL = 1
|
|
VIEWER_POOL_CLOSE = 2
|
|
VIEWER_CONTROL_PANEL = 3
|
|
|
|
; Stoney Ship
|
|
STONEY_SHIP_STERN = 0
|
|
STONEY_SHIP_BOW = 1
|
|
STONEY_SHIP_DOOR_CLOSED = 2
|
|
STONEY_SHIP_DOOR_OPEN = 3
|
|
STONEY_SHIP_CHAIR = 4
|
|
STONEY_SHIP_BOOK_CLOSED = 5
|
|
STONEY_SHIP_BOOK_OPEN = 6
|
|
STONEY_ARRIVAL = 7
|
|
STONEY_UMBRELLA_PATH = 8
|
|
STONEY_UMBRELLA = 9
|
|
STONEY_LIGHTHOUSE_PATH = 10
|
|
STONEY_LIGHTHOUSE_DOOR = 11
|
|
STONEY_LIGHTHOUSE_INSIDE= 12
|
|
STONEY_LIGHTHOUSE_UPSTAIRS= 13
|
|
STONEY_LIGHTHOUSE_BATTERY= 14
|
|
STONEY_LIGHTHOUSE_DOWNLADDER= 15
|
|
STONEY_DOORWAY1 = 16
|
|
STONEY_BRIDGE = 17
|
|
STONEY_EXIT = 18
|
|
STONEY_EXIT_AIRLOCK = 19
|
|
STONEY_EXIT_AIRLOCK_OPEN= 20
|
|
STONEY_BOOK_STAIRS1 = 21
|
|
STONEY_BOOK_STAIRS2 = 22
|
|
STONEY_BOOK_ROOM = 23
|
|
STONEY_BOOK_TABLE = 24
|
|
STONEY_BOOK_TABLE_CLOSED= 25
|
|
STONEY_BOOK_TABLE_OPEN = 26
|
|
STONEY_DOORWAY2 = 27
|
|
STONEY_TELESCOPE_PATH1 = 28
|
|
STONEY_TELESCOPE_PATH2 = 29
|
|
STONEY_TELESCOPE_PATH3 = 30
|
|
STONEY_TELESCOPE = 31
|
|
STONEY_TELESCOPE_VIEW = 32
|
|
STONEY_LEFT_TUNNEL1 = 33
|
|
STONEY_LEFT_TUNNEL2 = 34
|
|
STONEY_LEFT_AIRLOCK = 35
|
|
STONEY_LEFT_AIRLOCK_OPEN= 36
|
|
STONEY_RED_ROOM = 37
|
|
STONEY_RED_ROOM_DRESSER = 38
|
|
STONEY_RED_DRESSER_OPEN = 39
|
|
STONEY_CRAWLWAY_LEFT = 40
|
|
STONEY_COMPASS_ROOM = 41
|
|
STONEY_COMPASS_ROSE = 42
|
|
STONEY_RIGHT_TUNNEL1 = 43
|
|
STONEY_RIGHT_TUNNEL2 = 44
|
|
STONEY_RIGHT_AIRLOCK = 45
|
|
STONEY_RIGHT_AIRLOCK_OPEN= 46
|
|
STONEY_BLUE_ROOM = 47
|
|
STONEY_BLUE_MAPCASE = 48
|
|
STONEY_BLUE_MAPCASE_OPEN= 49
|
|
STONEY_BLUE_HALFMESSAGE = 50
|
|
STONEY_CRAWLWAY_RIGHT = 51
|
|
|
|
; Channely Wood
|
|
CHANNEL_ARRIVAL = 0
|
|
CHANNEL_PATH2 = 1
|
|
CHANNEL_PATH3 = 2
|
|
CHANNEL_BRIDGE = 3
|
|
CHANNEL_PATH4 = 4
|
|
CHANNEL_PATH5 = 5
|
|
CHANNEL_PATH6 = 6
|
|
CHANNEL_FORK = 7
|
|
CHANNEL_BEFORE_ELEV1 = 8
|
|
CHANNEL_IN_ELEV1_OPEN = 9
|
|
CHANNEL_PIPE_BRIDGE2 = 10
|
|
CHANNEL_STEPS_FORK = 11
|
|
CHANNEL_STEPS_PATH = 12
|
|
CHANNEL_STEPS_DOOR = 13
|
|
CHANNEL_WIND_PATH = 14
|
|
CHANNEL_WIND_PATH2 = 15
|
|
CHANNEL_ISLAND1 = 16
|
|
CHANNEL_ISLAND2 = 17
|
|
CHANNEL_ISLAND3 = 18
|
|
CHANNEL_SHACK = 19
|
|
CHANNEL_TANK = 20
|
|
CHANNEL_TANK_CLOSE = 21
|
|
CHANNEL_WINDMILL = 22
|
|
CHANNEL_OUT_BACK = 23
|
|
CHANNEL_AFTER_BRIDGE1 = 24
|
|
CHANNEL_AFTER_BRIDGE2 = 25
|
|
CHANNEL_BOOK_FORK = 26
|
|
CHANNEL_PIPE_EXTEND = 27
|
|
CHANNEL_BOOK_ELEVATOR = 28
|
|
CHANNEL_BOOK_E_OPEN = 29
|
|
CHANNEL_BOOK_E_INSIDE_GND= 30
|
|
CHANNEL_BOOK_E_IN_CLOSED= 31
|
|
CHANNEL_BOOK_E_INSIDE_TOP= 32
|
|
CHANNEL_BOOK_ROOM = 33
|
|
CHANNEL_BOOK_CLOSED = 34
|
|
CHANNEL_BOOK_OPEN = 35
|
|
CHANNEL_ELEV1_OPEN = 36
|
|
CHANNEL_IN_ELEV1_CLOSED = 37
|
|
|
|
; Cabin lost in woods
|
|
CABIN_OUTSIDE = 0
|
|
CABIN_OPEN = 1
|
|
CABIN_ENTRANCE = 2
|
|
CABIN_INSIDE = 3
|
|
CABIN_SAFE = 4
|
|
CABIN_CLOCK_PATH = 5
|
|
CABIN_TREE_PATH = 6
|
|
CABIN_BIG_TREE = 7
|
|
CABIN_TREE_ELEVATOR = 8
|
|
CABIN_TREE_BASEMENT = 9
|
|
CABIN_TREE_BOOK = 10
|
|
CABIN_TREE_BOOK_CLOSED = 11
|
|
CABIN_TREE_BOOK_OPEN = 12
|
|
|
|
; Arbor, up in the trees
|
|
ARBOR_INSIDE_ELEV1 = 0
|
|
ARBOR_INSIDE_ELEV1_OPEN = 1
|
|
ARBOR_ARRIVAL_CLOSED = 2
|
|
ARBOR_ARRIVAL_OPEN = 3
|
|
ARBOR_BRIDGE1 = 4
|
|
ARBOR_HUT1 = 5
|
|
ARBOR_BRIDGE2 = 6
|
|
ARBOR_SHACK1 = 7
|
|
ARBOR_BRIDGE3 = 8
|
|
ARBOR_LONGSHACK1 = 9
|
|
ARBOR_LONGSHACK2 = 10
|
|
ARBOR_SWITCH_BRIDGE1 = 11
|
|
ARBOR_SWITCH_HUT1 = 12
|
|
ARBOR_SWITCH_BRIDGE2 = 13
|
|
ARBOR_SWITCH_HUT = 14
|
|
ARBOR_BRIDGE4 = 15
|
|
ARBOR_HUT2 = 16
|
|
ARBOR_HUT2_INSIDE = 17
|
|
ARBOR_BRIDGE5 = 18
|
|
ARBOR_LONGSHACK3 = 19
|
|
ARBOR_BRIDGE6 = 20
|
|
ARBOR_SHACK2 = 21
|
|
ARBOR_BRIDGE7 = 22
|
|
ARBOR_DOORS = 23
|
|
ARBOR_DOORS_ELEV2_OPEN = 24
|
|
ARBOR_INSIDE_ELEV2_OPEN = 25
|
|
ARBOR_INSIDE_ELEV2_CLOSED= 26
|
|
ARBOR_STEPS_TOP = 27
|
|
ARBOR_STEPS2 = 28
|
|
ARBOR_STEPS1 = 29
|
|
ARBOR_STEPS_BOTTOM = 30
|
|
|
|
; NIBEL, up in the clouds
|
|
NIBEL_IN_ELEV2_TOP_CLOSED= 0
|
|
NIBEL_IN_ELEV2_TOP_OPEN= 1
|
|
NIBEL_OUTSIDE_ELEV2_OPEN= 2
|
|
NIBEL_OUTSIDE_ELEV2_CLOSED= 3
|
|
NIBEL_BLUE_PATH1 = 4
|
|
NIBEL_BLUE_PATH2 = 5
|
|
NIBEL_BLUE_PATH3 = 6
|
|
NIBEL_BLUE_ROOM = 7
|
|
NIBEL_BLUE_HOUSE_VIEWER = 8
|
|
NIBEL_RED_PATH1 = 9
|
|
NIBEL_RED_DOOR_CLOSED = 10
|
|
NIBEL_RED_DOOR_OPEN = 11
|
|
NIBEL_RED_ROOM = 12
|
|
NIBEL_RED_TABLE = 13
|
|
NIBEL_RED_TABLE_OPEN = 14
|
|
NIBEL_RED_BED = 15
|
|
NIBEL_RED_BED_OPEN = 16
|
|
NIBEL_HALF_LETTER = 17
|
|
|
|
DENTIST_OUTSIDE = 0
|
|
DENTIST_OUTSIDE_OPEN = 1
|
|
DENTIST_INSIDE_DOOR = 2
|
|
DENTIST_CHAIR_CLOSE = 3
|
|
DENTIST_PANEL_UP = 4
|
|
DENTIST_PANEL = 5
|
|
|