summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPikalaxALT <pikalax1@gmail.com>2017-09-12 16:47:51 -0400
committerPikalaxALT <pikalax1@gmail.com>2017-09-12 16:49:04 -0400
commit9286c93c8afd9505259487481e45db6956444004 (patch)
tree44938ddea4b5f0667084346a78f8c77272807caf /src
parentc6ef3442621227562f15017441aa6fb7709e7187 (diff)
npc_paltag_set_load
Diffstat (limited to 'src')
-rwxr-xr-xsrc/field_map_obj.c37
1 files changed, 36 insertions, 1 deletions
diff --git a/src/field_map_obj.c b/src/field_map_obj.c
index af36d95f7..b4617cd5a 100755
--- a/src/field_map_obj.c
+++ b/src/field_map_obj.c
@@ -5,6 +5,7 @@
#include "sprite.h"
#include "rom4.h"
#include "data3.h"
+#include "event_scripts.h"
#include "berry.h"
#include "palette.h"
#include "field_player_avatar.h"
@@ -1163,7 +1164,7 @@ void pal_patch_for_npc(u16 paletteTag, u8 paletteSlot)
LoadPalette(gUnknown_0850BBC8[paletteIdx].data, 16 * paletteSlot + 256, 0x20);
}
-void pal_patch_for_npc_range(u16 *paletteTags, u8 minSlot, u8 maxSlot)
+void pal_patch_for_npc_range(const u16 *paletteTags, u8 minSlot, u8 maxSlot)
{
while (minSlot < maxSlot)
{
@@ -1639,3 +1640,37 @@ void sub_808F254(u8 localId, u8 mapNum, u8 mapGroup)
sub_808F208(&gMapObjects[mapObjectId]);
}
}
+
+void sub_808F28C(u8 localId, u8 mapNum, u8 mapGroup, u8 action)
+{
+ u8 mapObjectId;
+
+ if (!TryGetFieldObjectIdByLocalIdAndMap(localId, mapNum, mapGroup, &mapObjectId))
+ {
+ switch (action)
+ {
+ case 6:
+ sub_808F228(&gMapObjects[mapObjectId], gUnknown_082766A2);
+ break;
+ case 7:
+ sub_808F228(&gMapObjects[mapObjectId], gUnknown_082766A6);
+ break;
+ }
+ }
+}
+
+void npc_paltag_set_load(u8 a0)
+{
+ gpu_pal_allocator_reset__manage_upper_four();
+ gUnknown_020375B6 = 0x11ff;
+ gUnknown_020375B4 = a0;
+ if (a0 == 1)
+ {
+ pal_patch_for_npc_range(gUnknown_0850BE38[gUnknown_020375B4], 0, 6);
+ gReservedSpritePaletteCount = 8;
+ }
+ else
+ {
+ pal_patch_for_npc_range(gUnknown_0850BE38[gUnknown_020375B4], 0, 10);
+ }
+}