summaryrefslogtreecommitdiff
path: root/src/rom_81520A8.c
diff options
context:
space:
mode:
authorGriffinR <griffin.g.richards@gmail.com>2020-06-17 03:42:10 -0400
committerGriffinR <griffin.g.richards@gmail.com>2020-06-17 03:42:10 -0400
commitf600aff71140b34e4b3c210ef27ec1b9704a6f45 (patch)
tree191c5e44e5271b68a75c7badcb5999e00e636ae5 /src/rom_81520A8.c
parent76f6d05173e134d9cea3df0deb65f93804617c0f (diff)
Rename rom_81520A8
Diffstat (limited to 'src/rom_81520A8.c')
-rw-r--r--src/rom_81520A8.c218
1 files changed, 0 insertions, 218 deletions
diff --git a/src/rom_81520A8.c b/src/rom_81520A8.c
deleted file mode 100644
index 2c37d7d48..000000000
--- a/src/rom_81520A8.c
+++ /dev/null
@@ -1,218 +0,0 @@
-#include "global.h"
-#include "rom_81520A8.h"
-#include "malloc.h"
-#include "main.h"
-#include "digit_obj_util.h"
-
-static EWRAM_DATA struct
-{
- u8 count;
- struct OamUtil *array;
-} *sWork = NULL;
-
-static void sub_81520A8(void *dest, u16 value, u8 left, u8 top, u8 width, u8 height) // Unused.
-{
- u8 i;
- u8 j;
- u8 x;
- u8 y;
-
- for (i = 0, y = top; i < height; i++)
- {
- for (x = left, j = 0; j < width; j++)
- {
- *(u16 *)((dest) + (y * 64 + x * 2)) = value;
- x = (x + 1) % 32;
- }
- y = (y + 1) % 32;
- }
-}
-
-static void sub_8152134(void *dest, const u16 *src, u8 left, u8 top, u8 width, u8 height) // Unused.
-{
- u8 i;
- u8 j;
- u8 x;
- u8 y;
- const u16 *_src;
-
- for (i = 0, _src = src, y = top; i < height; i++)
- {
- for (x = left, j = 0; j < width; j++)
- {
- *(u16 *)((dest) + (y * 64 + x * 2)) = *(_src++);
- x = (x + 1) % 32;
- }
- y = (y + 1) % 32;
- }
-}
-
-bool32 OamUtil_Init(u8 count)
-{
- u8 i = 0;
-
- if (count == 0)
- return FALSE;
- if (count > 64)
- count = 64;
-
- sWork = AllocZeroed(sizeof(*sWork));
- if (sWork == NULL)
- return FALSE;
- sWork->array = AllocZeroed(count * sizeof(struct OamUtil));
- if (sWork->array == NULL)
- {
- FREE_AND_SET_NULL(sWork);
- return FALSE;
- }
-
- sWork->count = count;
- for (i = 0; i < count; i++)
- {
- memcpy(&sWork->array[i].oam, &gDummyOamData, sizeof(struct OamData));
- sWork->array[i].dummied = TRUE;
- }
-
- return TRUE;
-}
-
-bool32 OamUtil_Free(void)
-{
- u8 i = 0;
-
- if (sWork == NULL)
- return FALSE;
-
- for (i = 0; i < sWork->count; i++)
- memcpy(&gMain.oamBuffer[i + 64], &gDummyOamData, sizeof(struct OamData));
-
- memset(sWork->array, 0, sWork->count * sizeof(struct OamUtil));
- FREE_AND_SET_NULL(sWork->array);
- memset(sWork, 0, sizeof(*sWork));
- FREE_AND_SET_NULL(sWork);
-
- return TRUE;
-}
-
-bool32 OamUtil_Update(void)
-{
- u8 i = 0;
-
- if (sWork == NULL || sWork->array == NULL)
- return FALSE;
-
- for (i = 0; i < sWork->count; i++)
- {
- if (sWork->array[i].active && sWork->array[i].allowUpdates)
- {
- if (sWork->array[i].callback != NULL)
- sWork->array[i].callback(&sWork->array[i]);
-
- if (sWork->array[i].dummied)
- {
- memcpy(&gMain.oamBuffer[i + 64], &gDummyOamData, sizeof(struct OamData));
- }
- else
- {
- sWork->array[i].oam.y = sWork->array[i].y + sWork->array[i].yDelta;
- sWork->array[i].oam.x = sWork->array[i].x + sWork->array[i].xDelta;
- sWork->array[i].oam.priority = sWork->array[i].priority;
- sWork->array[i].oam.tileNum = sWork->array[i].tileNum;
- memcpy(&gMain.oamBuffer[i + 64], &sWork->array[i], sizeof(struct OamData));
- }
- }
- }
-
- return TRUE;
-}
-
-static bool32 SetAnimAndTileNum(struct OamUtil *structPtr, u8 animNum)
-{
- u16 tileStart;
-
- if (structPtr == NULL)
- return FALSE;
-
- tileStart = GetSpriteTileStartByTag(structPtr->tileTag);
- if (tileStart == 0xFFFF)
- return FALSE;
-
- structPtr->animNum = animNum;
- structPtr->tileNum = (GetTilesPerImage(structPtr->oam.shape, structPtr->oam.size) * animNum) + tileStart;
- return TRUE;
-}
-
-u8 OamUtil_SetCallback(u8 id, void (*func)(struct OamUtil *))
-{
- if (sWork == NULL || id >= sWork->count)
- return 0xFF;
- else if (!sWork->array[id].active)
- return 0xFF;
-
- sWork->array[id].callback = func;
- return id;
-}
-
-u8 OamUtil_SetData(u8 id, u8 dataArrayId, s16 dataValue)
-{
- if (sWork == NULL || id >= sWork->count)
- return 0xFF;
- else if (!sWork->array[id].active || dataArrayId > ARRAY_COUNT(sWork->array[id].data) - 1) // - 1 b/c last slot is reserved for taskId
- return 0xFF;
-
- sWork->array[id].data[dataArrayId] = dataValue;
- return id;
-}
-
-u8 OamUtil_AddNew(const struct OamData *oam, u16 tileTag, u16 palTag, s16 x, s16 y, u8 animNum, u8 priority)
-{
- struct OamUtil *structPtr = NULL;
- u8 i;
-
- if (sWork == NULL || oam == NULL)
- return 0xFF;
-
- for (i = 0; i < sWork->count; i++)
- {
- if (!sWork->array[i].active)
- {
- structPtr = &sWork->array[i];
- memset(structPtr, 0, sizeof(*structPtr));
- structPtr->id = i;
- structPtr->active = TRUE;
- structPtr->allowUpdates = TRUE;
- break;
- }
- }
-
- if (structPtr == NULL)
- return 0xFF;
-
- memcpy(&structPtr->oam, oam, sizeof(*oam));
- structPtr->tileTag = tileTag;
- structPtr->palTag = palTag;
- structPtr->x = x;
- structPtr->y = y;
- structPtr->oam.paletteNum = IndexOfSpritePaletteTag(palTag);
- if (priority < 4)
- {
- structPtr->priority = priority;
- structPtr->oam.priority = priority;
- }
- SetAnimAndTileNum(structPtr, animNum);
-
- return structPtr->id;
-}
-
-u8 OamUtil_Remove(u8 id)
-{
- if (sWork == NULL || !sWork->array[id].active)
- return 0xFF;
-
- memset(&sWork->array[id], 0, sizeof(struct OamUtil));
- sWork->array[id].oam.y = 160;
- sWork->array[id].oam.x = 240;
- sWork->array[id].dummied = TRUE;
- memcpy(&gMain.oamBuffer[id + 64], &gDummyOamData, sizeof(struct OamData));
- return id;
-}