mirror of
https://github.com/YohannDR/mzm.git
synced 2025-02-08 06:26:08 +00:00
Start decompiling haze.c
This commit is contained in:
parent
25878e698c
commit
e659c9b011
8
include/data/haze_data.h
Normal file
8
include/data/haze_data.h
Normal file
@ -0,0 +1,8 @@
|
||||
#ifndef HAZE_DATA_H
|
||||
#define HAZE_DATA_H
|
||||
|
||||
#include "types.h"
|
||||
|
||||
extern const u8 sHaze_345ff8[132];
|
||||
|
||||
#endif /* HAZE_DATA_H */
|
@ -26,4 +26,6 @@ extern u8 gUnk_3005729;
|
||||
|
||||
extern HazeFunc_T gHazeProcessCodePointer;
|
||||
|
||||
extern u8 gCurrentHazeValue;
|
||||
|
||||
#endif /* HAZE_STRUCT_H */
|
||||
|
@ -5,6 +5,4 @@
|
||||
|
||||
extern u8 gMonochromeBgFading;
|
||||
|
||||
extern u8 gCurrentHazeValue;
|
||||
|
||||
#endif
|
||||
|
60
src/haze.c
60
src/haze.c
@ -1,19 +1,79 @@
|
||||
#include "haze.h"
|
||||
#include "gba.h"
|
||||
|
||||
#include "data/engine_pointers.h"
|
||||
#include "data/haze_data.h"
|
||||
|
||||
#include "constants/haze.h"
|
||||
|
||||
#include "structs/haze.h"
|
||||
#include "structs/room.h"
|
||||
|
||||
#define HAZE_SET_INACTIVE() \
|
||||
do { \
|
||||
gHazeInfo.flag &= ~HAZE_FLAG_ACTIVE_FLAG;\
|
||||
} while(0);
|
||||
|
||||
void HazeSetBackgroundEffect(void)
|
||||
{
|
||||
// https://decomp.me/scratch/MYhgd
|
||||
|
||||
HazeResetLoops();
|
||||
|
||||
gCurrentHazeValue = sHazeData[gCurrentRoomEntry.visualEffect][0];
|
||||
|
||||
if (gCurrentHazeValue)
|
||||
{
|
||||
gCurrentRoomEntry.damageEffect = sHazeData[gCurrentRoomEntry.visualEffect][1];
|
||||
gWaterMovement.moving = sHazeData[gCurrentRoomEntry.visualEffect][2];
|
||||
}
|
||||
|
||||
HazeSetupCode(gCurrentHazeValue);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 5d034 | 98 | Transfers the haze effect and clears it
|
||||
*
|
||||
*/
|
||||
void HazeTransferAndDeactivate(void)
|
||||
{
|
||||
vu8 buffer;
|
||||
|
||||
if (gHazeInfo.flag & HAZE_FLAG_ACTIVE_FLAG)
|
||||
{
|
||||
dma_set(0, EWRAM_BASE + 0x26300, gHazeInfo.pAffected, (DMA_ENABLE | DMA_DEST_RELOAD) << 16 | gHazeInfo.size / 2);
|
||||
|
||||
buffer = sHaze_345ff8[0];
|
||||
buffer = sHaze_345ff8[0];
|
||||
|
||||
dma_set(0, EWRAM_BASE + 0x26300, gHazeInfo.pAffected, (DMA_DEST_RELOAD) << 16 | gHazeInfo.size / 2);
|
||||
|
||||
gHazeInfo.flag &= ~HAZE_FLAG_ACTIVE_FLAG;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 5d09c | 7c | To document
|
||||
*
|
||||
*/
|
||||
void unk_5d09c(void)
|
||||
{
|
||||
vu8 buffer;
|
||||
|
||||
if (gHazeInfo.flag & HAZE_FLAG_ACTIVE_FLAG)
|
||||
{
|
||||
dma_set(0, EWRAM_BASE + 0x26300, gHazeInfo.pAffected, (DMA_ENABLE | DMA_DEST_RELOAD) << 16 | gHazeInfo.size / 2);
|
||||
|
||||
buffer = sHaze_345ff8[0];
|
||||
buffer = sHaze_345ff8[0];
|
||||
|
||||
dma_set(0, EWRAM_BASE + 0x26300, gHazeInfo.pAffected, (DMA_DEST_RELOAD) << 16 | gHazeInfo.size / 2);
|
||||
|
||||
HAZE_SET_INACTIVE();
|
||||
gHazeInfo.size = 2;
|
||||
gHazeInfo.pAffected = EWRAM_BASE + 0x26D00;
|
||||
gCurrentHazeValue = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void HazeSetupCode(u8 hazeValue)
|
||||
|
Loading…
x
Reference in New Issue
Block a user