init_player_data.asm 864 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. InitPlayerData:
  2. InitPlayerData2:
  3. call Random
  4. ld a, [hRandomSub]
  5. ld [wPlayerID], a
  6. call Random
  7. ld a, [hRandomAdd]
  8. ld [wPlayerID + 1], a
  9. ld a, $ff
  10. ld [wUnusedD71B], a
  11. ld hl, wPartyCount
  12. call InitializeEmptyList
  13. ld hl, wNumInBox
  14. call InitializeEmptyList
  15. ld hl, wNumBagItems
  16. call InitializeEmptyList
  17. ld hl, wNumBoxItems
  18. call InitializeEmptyList
  19. START_MONEY EQU $3000
  20. ld hl, wPlayerMoney + 1
  21. ld a, START_MONEY / $100
  22. ld [hld], a
  23. xor a
  24. ld [hli], a
  25. inc hl
  26. ld [hl], a
  27. ld [wMonDataLocation], a
  28. ld hl, wObtainedBadges
  29. ld [hli], a
  30. ld [hl], a
  31. ld hl, wPlayerCoins
  32. ld [hli], a
  33. ld [hl], a
  34. ld hl, wGameProgressFlags
  35. ld bc, wGameProgressFlagsEnd - wGameProgressFlags
  36. call FillMemory ; clear all game progress flags
  37. jp InitializeMissableObjectsFlags
  38. InitializeEmptyList:
  39. xor a ; count
  40. ld [hli], a
  41. dec a ; terminator
  42. ld [hl], a
  43. ret