Second Quest / Hero Mode
tobiasvl opened this issue · comments
Making an actual Second Quest would probably be too hard, but what about mirroring the world?
Or maybe this should just be Hero Mode.
Requires:
- Adding the X flip flag to basically all BG attributes (incompatible with DMG obviously)
- Possibly with the exception of SHOP signs and similar?
- Mirror all room drawing operations (DrawCommands)
- Also make it work with scrolling
- Mirror all metadata/collision/chests/exit data etc
- Mirror the map
- Mirror some OBJs? (Not Link)
- Probably change several literal X and Y coordinates
- Change exits? Chests? What else?
- Change what side the next room is drawn on (for scrolling)
- Change dialog referring to "west", "east" and arrows pointing "<left>" and "<right>"
POI:
- func_020_4A76
- label_2887
- CopyObjectToActiveRoomMap
- LoadRoomObject (huge, works kind of like DrawCommands)
- There are two- and three-byte objects
- func_036_6D4D
- func_021_53F3
- CheckPositionForMapTransition
- wRoomTransitionDirection
- ROOM_TRANSITION_LOAD_ROOM
wWarpStructs: Room warps/exits
RoomTransitionConfigureScrollTargets
UpdateBGRegion -> DoUpdateBGRegion
CopyObjectRowToBGMap
CopyObjectColumnToBGMap
DoUpdateBGRegion -> func_020_4A76
LoadRequestedGfx -> LoadRoomTilemap -> WriteIndoorObjectToBG / WriteOverworldObjectToBG
(this seems to read from wRoomObjects and draw to BG map; WHY does it then not draw it mirrored when wRoomObjects is mirrored??)
Status per nå:
- Innendørs:
- OK nå som templates er håndtert, men exits er plutselig borte?
- Man kan hoppe utfor venstre og høyre vegg. Må fikses. Sjekk hvilken retning man kommer fra på sånne, og flipp.
- Mulig attributes ikke settes riktig lenger (med flipp) når man scroller.
- Utendørs:
- DMG tegner for det meste flippet (som er ironisk siden dette ikke kan funke på DMG pga manglende X-flip på BG), men en del ting mangler (hus)
- CGB tegner ikke flippet. Kollisjon ER flippet - for det meste. Trær (makroer) funker ikke som de skal.
- Noen/alle sprites må flippes, f. eks. barna som kaster ball.
Generelt:
- Sjekk makroer
- Sjekk utendørs på CGB
- Sjekk scrolling
scroll: feil attributter (tiles ikke speilet)
ikke scroll: alt riktig!!!!
unntatt trær. noe galt med macro.
overlay/alternate rooms: ikke riktig (f. eks. når man dytter rooster statue)
exits ikke flipped
exits går til feil sted???
templates plasserer ikke utgangsdør??