forked from bordplate/rac1-randomizer
-
Notifications
You must be signed in to change notification settings - Fork 0
/
metal_detector_spot.c
26 lines (20 loc) · 835 Bytes
/
metal_detector_spot.c
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
#include "npea00385.h"
// PVars for the moby that hides bolts you can find with the metal detector. We only use bolts
struct MetalDetectorSpotVars {
char unknown[0x18];
int bolts;
};
#define coords_map ((char*)0xB00000)
// Original update function for metal detector spot moby.
#define metal_detector_spot_update_func ((void (*)(struct Moby*))0x3d91b8)
// Hook metal detector spot update function
void _start(struct Moby *self) {
if (self->state == 0) {
// If this metal detector spot moby hasn't been initialized
struct MetalDetectorSpotVars *vars = (struct MetalDetectorSpotVars *)(self->pvars);
// Multiply the amount of bolts this spot contains
vars->bolts = vars->bolts * 35;
}
// Call the original update function to resume normal behavior
metal_detector_spot_update_func(self);
}