Implement talker events [commit 2] (#30)

This commit is contained in:
xCrystal
2023-11-28 18:02:00 +01:00
parent 88b6810a18
commit 933fca3b4b
12 changed files with 111 additions and 44 deletions

View File

@@ -2,6 +2,7 @@
const_def
;; The first eight flags are reset upon reloading the map
const EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1
const EVENT_TEMPORARY_UNTIL_MAP_RELOAD_2
@@ -17,6 +18,7 @@ const_value = const_value + 8 - (const_value % 8)
endc
EVENT_TEMPORARY_UNTIL_MAP_RELOAD_FLAGS_END EQU const_value
;; The next flags are reset upon entering a new level (for e.g. trainers)
EVENT_LEVEL_SCOPED_FLAGS_START EQU EVENT_TEMPORARY_UNTIL_MAP_RELOAD_FLAGS_END
@@ -46,8 +48,39 @@ const_value = const_value + 8 - (const_value % 8)
endc
EVENT_LEVEL_SCOPED_FLAGS_END EQU const_value
;; The next flags are reset upon taking a step (for e.g. talker)
EVENT_TURN_SCOPED_FLAGS_START EQU EVENT_LEVEL_SCOPED_FLAGS_END
const EVENT_TURN_SCOPED_1
const EVENT_TURN_SCOPED_2
const EVENT_TURN_SCOPED_3
const EVENT_TURN_SCOPED_4
const EVENT_TURN_SCOPED_5
const EVENT_TURN_SCOPED_6
const EVENT_TURN_SCOPED_7
const EVENT_TURN_SCOPED_8
const EVENT_TURN_SCOPED_9
const EVENT_TURN_SCOPED_10
const EVENT_TURN_SCOPED_11
const EVENT_TURN_SCOPED_12
const EVENT_TURN_SCOPED_13
const EVENT_TURN_SCOPED_14
const EVENT_TURN_SCOPED_15
const EVENT_TURN_SCOPED_16
const EVENT_TURN_SCOPED_17
const EVENT_TURN_SCOPED_18
const EVENT_TURN_SCOPED_19
const EVENT_TURN_SCOPED_20
if (const_value % 8) != 0
const_value = const_value + 8 - (const_value % 8)
endc
EVENT_TURN_SCOPED_FLAGS_END EQU const_value
;; The remaining flags are only reset explicitly
EVENT_REGULAR_FLAGS_START EQU EVENT_LEVEL_SCOPED_FLAGS_END
EVENT_REGULAR_FLAGS_START EQU EVENT_TURN_SCOPED_FLAGS_END
const EVENT_INITIALIZED_EVENTS

View File

@@ -47,10 +47,12 @@ DEF CONTEXT_USE EQU 1 << CONTEXT_USE_F
const TRAINERTYPE_ITEM_MOVES
; talker events (from talker macro and high bit of wTempTalkerType)
DEF TALKER_OPTIONAL EQU %0
DEF TALKER_MANDATORY EQU %1
DEF TALKEREVENTTYPE_MASK EQU %10000000
DEF TALKEREVENTTYPE_OPTIONAL EQU %0
DEF TALKEREVENTTYPE_MANDATORY EQU %1
; talker types (from talker macro and low seven bits of wTempTalkerType)
DEF TALKERTYPE_MASK EQU %01111111
const_def
const TALKERTYPE_TEXT
const TALKERTYPE_MODAL_TEXT