kep-hack/scripts/PokemonTower4F.asm
Llinos Evans 83483f035b The Great Constant Compression of June 2023
This is a large-scale compression of KEP's current hide/show constants. RBY's works extremely oddly and is limited to 256 entries.

The problem with how RBY's hide/show stuff works, is that even though there are tons of unused constants, you...can't actually remove them. The constant list is tied to the hide/show data entries, so if you replace it with something else, well, now you just have two objects tied to the same constant. If you made the Route 2 item a boss, and someone picked up the item on Route 2, the boss would also disappear, and vice versa. So, we have to get creative.

I have reduced what we have to 248, but I think I miscounted when doing the funny list somewhere in the actual list when making sure the hex stuff is ok. Either that, or there's an error somewhere that Martha will, by some obscene miracle of humanity, discover. Anyway, this was achieved by turning multiple current overworld items into hidden ones, keeping them in the game whilst keeping to that all-important limit.

I also removed the items in Pokemon Tower 4F for this, just needed a little boost. Well, as you can see by the number, I technically didn't, I just miscounted like 20 times. Look, it's 10:11 PM, my stomach is in pain from an insane injection, and I don't even know if that map will come back, cut me some slack. Or add it back. You definitely can.
2023-06-27 22:17:07 +01:00

83 lines
2 KiB
NASM

PokemonTower4F_Script:
call EnableAutoTextBoxDrawing
ld hl, PokemonTower4TrainerHeaders
ld de, PokemonTower4F_ScriptPointers
ld a, [wPokemonTower4FCurScript]
call ExecuteCurMapScriptInTable
ld [wPokemonTower4FCurScript], a
ret
PokemonTower4F_ScriptPointers:
dw CheckFightingMapTrainers
dw DisplayEnemyTrainerTextAndStartBattle
dw EndTrainerBattle
PokemonTower4F_TextPointers:
dw PokemonTower4Text1
dw PokemonTower4Text2
dw PokemonTower4Text3
PokemonTower4TrainerHeaders:
def_trainers
PokemonTower4TrainerHeader0:
trainer EVENT_BEAT_POKEMONTOWER_4_TRAINER_0, 2, PokemonTower4BattleText1, PokemonTower4EndBattleText1, PokemonTower4AfterBattleText1
PokemonTower4TrainerHeader1:
trainer EVENT_BEAT_POKEMONTOWER_4_TRAINER_1, 2, PokemonTower4BattleText2, PokemonTower4EndBattleText2, PokemonTower4AfterBattleText2
PokemonTower4TrainerHeader2:
trainer EVENT_BEAT_POKEMONTOWER_4_TRAINER_2, 2, PokemonTower4BattleText3, PokemonTower4EndBattleText3, PokemonTower4AfterBattleText3
db -1 ; end
PokemonTower4Text1:
text_asm
ld hl, PokemonTower4TrainerHeader0
call TalkToTrainer
jp TextScriptEnd
PokemonTower4Text2:
text_asm
ld hl, PokemonTower4TrainerHeader1
call TalkToTrainer
jp TextScriptEnd
PokemonTower4Text3:
text_asm
ld hl, PokemonTower4TrainerHeader2
call TalkToTrainer
jp TextScriptEnd
PokemonTower4BattleText1:
text_far _PokemonTower4BattleText1
text_end
PokemonTower4EndBattleText1:
text_far _PokemonTower4EndBattleText1
text_end
PokemonTower4AfterBattleText1:
text_far _PokemonTower4AfterBattleText1
text_end
PokemonTower4BattleText2:
text_far _PokemonTower4BattleText2
text_end
PokemonTower4EndBattleText2:
text_far _PokemonTower4EndBattleText2
text_end
PokemonTower4AfterBattleText2:
text_far _PokemonTower4AfterBattleText2
text_end
PokemonTower4BattleText3:
text_far _PokemonTower4BattleText3
text_end
PokemonTower4EndBattleText3:
text_far _PokemonTower4EndBattleText3
text_end
PokemonTower4AfterBattleText3:
text_far _PokemonTower4AfterBattleText3
text_end