summaryrefslogtreecommitdiff
path: root/bossBridgeBowser.yaml
blob: c7aea6cbecc1c1a90927b0ec12faad843e6a7293 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
---
# BombDrop   = WM_Cloud        (673)
# DropedBomb = WM_SmallCloud   (674)

source_files: [../src/bossBridgeBowser.cpp, ../src/bossBombDrop.cpp]

hooks:

  ################################################
  # HOOKS FOR Dropped Bomb
  ################################################
  - name: dDroppedBombBuild
    type: add_func_pointer
    src_addr_pal: 0x8098550C
    target_func: 'dDroppedBomb::build(void)'



  ################################################
  # HOOKS FOR Bomb Drop
  ################################################
  - name: BombDropBuild
    type: add_func_pointer
    src_addr_pal: 0x80982530
    target_func: 'dBombDrop::build(void)'

  - name: UpdatedBombDropSpriteInfo
    type: patch
    addr_pal: 0x8030A5C0
    data: '02A1 0000 00000010 00000010  00000000 00000000 00000200 00000200  0000 0000 0200 0200 0000 0000'
    # 0x8030A340 + sprite num * 0x28 == offset

  - name: dBombDropSpriteFileInfo
    type: add_func_pointer
    src_addr_pal: 0x8031AB8C
    target_func: 'BDarcNameList'

    # 0x8031AB4C + sprite num * 0x4 == offset
    # That offset stores a pointer to a table of pointers to strings, followed by four bytes of padding
    # Each string is an arcname to load


  ################################################
  # HOOKS FOR BRIDGE BOWSER
  ################################################

  - name: BowserBridgeCollision
    type: add_func_pointer
    src_addr_pal: 0x80B7E804
    target_func: 'BowserDoomSpriteCollision(dEn_c *, ActivePhysics *, ActivePhysics *)'

  # - name: SetBowserBridgeHP
  #   type: patch
  #   addr_pal: 0x80B3E478
  #   data: '38000003'

  - name: BowserBridgeHammerCollision
    type: add_func_pointer
    src_addr_pal: 0x80B7E848
    target_func: 'ReturnNone'

  - name: PatchMagicStart
    type: add_func_pointer
    src_addr_pal: 0x80954BF0
    target_func: 'BowserDoomStart(dStageActor_c *)'

  - name: PatchMagicExecute
    type: add_func_pointer
    src_addr_pal: 0x80954BF4
    target_func: 'BowserDoomExecute(dStageActor_c *)'

  - name: PatchMagicEnd
    type: add_func_pointer
    src_addr_pal: 0x80954BF8
    target_func: 'BowserDoomEnd(dStageActor_c *)'

  - name: PatchBattleStartEnd
    type: add_func_pointer
    src_addr_pal: 0x80954BD4
    target_func: 'BowserStartEnd(dStageActor_c *)'


  ################################################
  # HOOKS FOR FIREBALL PATCHING
  ################################################

  - name: BowserFireballPatchA
    type: patch
    addr_pal: 0x800991B8
    data: '600000006000000060000000600000006000000060000000600000006000000060000000600000006000000060000000'

  - name: BowserFireballPatchB
    type: patch
    addr_pal: 0x80099264
    data: '600000006000000060000000600000006000000060000000'