Implement clearing level in RAM according to End Space effect, supporting up to 4 clearable stages per level; Implement unlocking levels [Commit 1] (#35)

This commit is contained in:
xCrystal
2024-01-18 19:22:21 +01:00
parent 8757112152
commit 38ffe06a2c
12 changed files with 183 additions and 11 deletions

View File

@@ -1,4 +1,4 @@
; Landmarks indexes (see data/level_selection_menu.asm)
; Landmarks indexes (see data/levels/level_selection_menu.asm)
const_def
const LANDMARK_LEVEL_1 ; 00
if DEF(_DEBUG)
@@ -9,6 +9,7 @@ if DEF(_DEBUG)
const LANDMARK_DEBUGLEVEL_5 ; 05
endc
DEF NUM_LANDMARKS EQU const_value
assert NUM_LANDMARKS <= 254
; used in CaughtData (legacy)
const_def $7f, -1

View File

@@ -1,4 +1,4 @@
; Level indexes (see data/level_selection_menu.asm)
; Level constants (see data/levels/level_selection_menu.asm)
const_def
const LEVEL_1 ; 00
if DEF(_DEBUG)
@@ -9,3 +9,17 @@ if DEF(_DEBUG)
const DEBUGLEVEL_5 ; 05
endc
DEF NUM_LEVELS EQU const_value
assert NUM_LEVELS <= 254
; Level stages
const_def
const STAGE_1 ; 00
const STAGE_2 ; 01
const STAGE_3 ; 02
const STAGE_4 ; 03
; requirement types to unlock a given level
const_def
const UNLOCK_WHEN_LEVELS_CLEARED ; 00
const UNLOCK_WHEN_NUMBER_OF_LEVELS_CLEARED ; 01
const UNLOCK_WHEN_TECHNIQUES_CLEARED ; 02

View File

@@ -3,6 +3,13 @@ DEF FIRST_SPACE_METATILE EQU $80
DEF FIRST_GREY_SPACE_METATILE EQU $e0
DEF UNIQUE_SPACE_METATILES_MASK EQU %11111
; End Space effect constants (denotes which stage of the level is cleared by this space; equivalent to STAGE_* constants)
const_def
const ES1 ; 0
const ES2 ; 1
const ES3 ; 2
const ES4 ; 3
; Branch Space special direction values
const_def 255, -1
const BRANCH_DIRECTION_INVALID ; -1