mirror of
https://github.com/Ninjdai1/pokeemerald.git
synced 2025-01-28 22:33:53 +01:00
give metatile labels to petalburg gym and pcs
This commit is contained in:
parent
c68ba9f4e8
commit
a9560d9c62
@ -1,43 +1,52 @@
|
|||||||
#ifndef GUARD_METATILE_LABELS_H
|
#ifndef GUARD_METATILE_LABELS_H
|
||||||
#define GUARD_METATILE_LABELS_H
|
#define GUARD_METATILE_LABELS_H
|
||||||
|
|
||||||
|
// gTileset_Building
|
||||||
|
#define METATILE_Building_PC_Off 0x004
|
||||||
|
#define METATILE_Building_PC_On 0x005
|
||||||
|
|
||||||
// gTileset_MauvilleGym
|
// gTileset_MauvilleGym
|
||||||
#define METATILE_MauvilleGym_RaisedSwitch 0x205
|
#define METATILE_MauvilleGym_RaisedSwitch 0x205
|
||||||
#define METATILE_MauvilleGym_PressedSwitch 0x206
|
#define METATILE_MauvilleGym_PressedSwitch 0x206
|
||||||
#define METATILE_MauvilleGym_FloorTile 0x21A
|
#define METATILE_MauvilleGym_FloorTile 0x21A
|
||||||
|
|
||||||
#define METATILE_MauvilleGym_GreenBeamH1_On 0x220
|
#define METATILE_MauvilleGym_GreenBeamH1_On 0x220
|
||||||
#define METATILE_MauvilleGym_GreenBeamH2_On 0x221
|
#define METATILE_MauvilleGym_GreenBeamH2_On 0x221
|
||||||
#define METATILE_MauvilleGym_GreenBeamH3_On 0x228
|
#define METATILE_MauvilleGym_GreenBeamH3_On 0x228
|
||||||
#define METATILE_MauvilleGym_GreenBeamH4_On 0x229
|
#define METATILE_MauvilleGym_GreenBeamH4_On 0x229
|
||||||
|
|
||||||
#define METATILE_MauvilleGym_GreenBeamH1_Off 0x230
|
#define METATILE_MauvilleGym_GreenBeamH1_Off 0x230
|
||||||
#define METATILE_MauvilleGym_GreenBeamH2_Off 0x231
|
#define METATILE_MauvilleGym_GreenBeamH2_Off 0x231
|
||||||
#define METATILE_MauvilleGym_GreenBeamH3_Off 0x238
|
#define METATILE_MauvilleGym_GreenBeamH3_Off 0x238
|
||||||
#define METATILE_MauvilleGym_GreenBeamH4_Off 0x239
|
#define METATILE_MauvilleGym_GreenBeamH4_Off 0x239
|
||||||
|
|
||||||
#define METATILE_MauvilleGym_RedBeamH1_On 0x222
|
#define METATILE_MauvilleGym_RedBeamH1_On 0x222
|
||||||
#define METATILE_MauvilleGym_RedBeamH2_On 0x223
|
#define METATILE_MauvilleGym_RedBeamH2_On 0x223
|
||||||
#define METATILE_MauvilleGym_RedBeamH3_On 0x22A
|
#define METATILE_MauvilleGym_RedBeamH3_On 0x22A
|
||||||
#define METATILE_MauvilleGym_RedBeamH4_On 0x22B
|
#define METATILE_MauvilleGym_RedBeamH4_On 0x22B
|
||||||
|
|
||||||
#define METATILE_MauvilleGym_RedBeamH1_Off 0x232
|
#define METATILE_MauvilleGym_RedBeamH1_Off 0x232
|
||||||
#define METATILE_MauvilleGym_RedBeamH2_Off 0x233
|
#define METATILE_MauvilleGym_RedBeamH2_Off 0x233
|
||||||
#define METATILE_MauvilleGym_RedBeamH3_Off 0x23A
|
#define METATILE_MauvilleGym_RedBeamH3_Off 0x23A
|
||||||
#define METATILE_MauvilleGym_RedBeamH4_Off 0x23B
|
#define METATILE_MauvilleGym_RedBeamH4_Off 0x23B
|
||||||
|
|
||||||
#define METATILE_MauvilleGym_GreenBeamV1_On 0x240
|
#define METATILE_MauvilleGym_GreenBeamV1_On 0x240
|
||||||
#define METATILE_MauvilleGym_GreenBeamV2_On 0x248
|
#define METATILE_MauvilleGym_GreenBeamV2_On 0x248
|
||||||
|
|
||||||
#define METATILE_MauvilleGym_RedBeamV1_On 0x241
|
#define METATILE_MauvilleGym_RedBeamV1_On 0x241
|
||||||
#define METATILE_MauvilleGym_RedBeamV2_On 0x249
|
#define METATILE_MauvilleGym_RedBeamV2_On 0x249
|
||||||
|
|
||||||
#define METATILE_MauvilleGym_PoleTop_On 0x250
|
#define METATILE_MauvilleGym_PoleTop_On 0x250
|
||||||
#define METATILE_MauvilleGym_PoleTop_Off 0x251
|
#define METATILE_MauvilleGym_PoleTop_Off 0x251
|
||||||
|
|
||||||
#define METATILE_MauvilleGym_PoleBottom_On 0x242
|
#define METATILE_MauvilleGym_PoleBottom_On 0x242
|
||||||
#define METATILE_MauvilleGym_PoleBottom_Off 0x243
|
#define METATILE_MauvilleGym_PoleBottom_Off 0x243
|
||||||
|
|
||||||
|
// gTileset_PetalburgGym
|
||||||
|
#define METATILE_PetalburgGym_SlidingDoor_Frame0 0x218
|
||||||
|
#define METATILE_PetalburgGym_SlidingDoor_Frame1 0x219
|
||||||
|
#define METATILE_PetalburgGym_SlidingDoor_Frame2 0x21A
|
||||||
|
#define METATILE_PetalburgGym_SlidingDoor_Frame3 0x21B
|
||||||
|
#define METATILE_PetalburgGym_SlidingDoor_Frame4 0x21C
|
||||||
|
|
||||||
|
// gTileset_BrendansMaysHouse
|
||||||
|
#define METATILE_BrendansMaysHouse_BrendanPC_Off 0x25A
|
||||||
|
#define METATILE_BrendansMaysHouse_BrendanPC_On 0x27F
|
||||||
|
#define METATILE_BrendansMaysHouse_MayPC_Off 0x259
|
||||||
|
#define METATILE_BrendansMaysHouse_MayPC_On 0x27E
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -62,7 +62,7 @@ EWRAM_DATA bool8 gBikeCyclingChallenge = FALSE;
|
|||||||
EWRAM_DATA u8 gBikeCollisions = 0;
|
EWRAM_DATA u8 gBikeCollisions = 0;
|
||||||
static EWRAM_DATA u32 gBikeCyclingTimer = 0;
|
static EWRAM_DATA u32 gBikeCyclingTimer = 0;
|
||||||
static EWRAM_DATA u8 gUnknown_0203AB5C = 0;
|
static EWRAM_DATA u8 gUnknown_0203AB5C = 0;
|
||||||
static EWRAM_DATA u8 gUnknown_0203AB5D = 0;
|
static EWRAM_DATA u8 sPetalburgGymSlidingDoorFrameCounter = 0;
|
||||||
static EWRAM_DATA u8 gUnknown_0203AB5E = 0;
|
static EWRAM_DATA u8 gUnknown_0203AB5E = 0;
|
||||||
static EWRAM_DATA u16 gUnknown_0203AB60 = 0;
|
static EWRAM_DATA u16 gUnknown_0203AB60 = 0;
|
||||||
static EWRAM_DATA u16 gUnknown_0203AB62 = 0;
|
static EWRAM_DATA u16 gUnknown_0203AB62 = 0;
|
||||||
@ -803,23 +803,30 @@ void MauvilleGymSpecial3(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static const u8 gUnknown_085B2B78[] = {0, 1, 1, 1, 1};
|
static const u8 gUnknown_085B2B78[] = {0, 1, 1, 1, 1};
|
||||||
static const u16 gUnknown_085B2B7E[] = {0x218, 0x219, 0x21a, 0x21b, 0x21c};
|
|
||||||
|
static const u16 sPetalburgGymSlidingDoorMetatiles[] = {
|
||||||
|
METATILE_ID(PetalburgGym, SlidingDoor_Frame0),
|
||||||
|
METATILE_ID(PetalburgGym, SlidingDoor_Frame1),
|
||||||
|
METATILE_ID(PetalburgGym, SlidingDoor_Frame2),
|
||||||
|
METATILE_ID(PetalburgGym, SlidingDoor_Frame3),
|
||||||
|
METATILE_ID(PetalburgGym, SlidingDoor_Frame4),
|
||||||
|
};
|
||||||
|
|
||||||
void PetalburgGymSpecial1(void)
|
void PetalburgGymSpecial1(void)
|
||||||
{
|
{
|
||||||
gUnknown_0203AB5C = 0;
|
gUnknown_0203AB5C = 0;
|
||||||
gUnknown_0203AB5D = 0;
|
sPetalburgGymSlidingDoorFrameCounter = 0;
|
||||||
PlaySE(SE_KI_GASYAN);
|
PlaySE(SE_KI_GASYAN);
|
||||||
CreateTask(Task_PetalburgGym, 8);
|
CreateTask(Task_PetalburgGym, 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void Task_PetalburgGym(u8 taskId)
|
static void Task_PetalburgGym(u8 taskId)
|
||||||
{
|
{
|
||||||
if (gUnknown_085B2B78[gUnknown_0203AB5D] == gUnknown_0203AB5C)
|
if (gUnknown_085B2B78[sPetalburgGymSlidingDoorFrameCounter] == gUnknown_0203AB5C)
|
||||||
{
|
{
|
||||||
PetalburgGymFunc(gSpecialVar_0x8004, gUnknown_085B2B7E[gUnknown_0203AB5D]);
|
PetalburgGymFunc(gSpecialVar_0x8004, sPetalburgGymSlidingDoorMetatiles[sPetalburgGymSlidingDoorFrameCounter]);
|
||||||
gUnknown_0203AB5C = 0;
|
gUnknown_0203AB5C = 0;
|
||||||
if ((++gUnknown_0203AB5D) == 5)
|
if ((++sPetalburgGymSlidingDoorFrameCounter) == ARRAY_COUNT(sPetalburgGymSlidingDoorMetatiles))
|
||||||
{
|
{
|
||||||
DestroyTask(taskId);
|
DestroyTask(taskId);
|
||||||
EnableBothScriptContexts();
|
EnableBothScriptContexts();
|
||||||
@ -831,74 +838,74 @@ static void Task_PetalburgGym(u8 taskId)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void PetalburgGymFunc(u8 a0, u16 a1)
|
static void PetalburgGymFunc(u8 roomNumber, u16 metatileId)
|
||||||
{
|
{
|
||||||
u16 x[4];
|
u16 doorCoordsX[4];
|
||||||
u16 y[4];
|
u16 doorCoordsY[4];
|
||||||
u8 i;
|
u8 i;
|
||||||
u8 nDoors = 0;
|
u8 nDoors = 0;
|
||||||
switch (a0)
|
switch (roomNumber)
|
||||||
{
|
{
|
||||||
case 1:
|
case 1:
|
||||||
nDoors = 2;
|
nDoors = 2;
|
||||||
x[0] = 1;
|
doorCoordsX[0] = 1;
|
||||||
x[1] = 7;
|
doorCoordsX[1] = 7;
|
||||||
y[0] = 0x68;
|
doorCoordsY[0] = 104;
|
||||||
y[1] = 0x68;
|
doorCoordsY[1] = 104;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
nDoors = 2;
|
nDoors = 2;
|
||||||
x[0] = 1;
|
doorCoordsX[0] = 1;
|
||||||
x[1] = 7;
|
doorCoordsX[1] = 7;
|
||||||
y[0] = 0x4e;
|
doorCoordsY[0] = 78;
|
||||||
y[1] = 0x4e;
|
doorCoordsY[1] = 78;
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
nDoors = 2;
|
nDoors = 2;
|
||||||
x[0] = 1;
|
doorCoordsX[0] = 1;
|
||||||
x[1] = 7;
|
doorCoordsX[1] = 7;
|
||||||
y[0] = 0x5b;
|
doorCoordsY[0] = 91;
|
||||||
y[1] = 0x5b;
|
doorCoordsY[1] = 91;
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
nDoors = 1;
|
nDoors = 1;
|
||||||
x[0] = 7;
|
doorCoordsX[0] = 7;
|
||||||
y[0] = 0x27;
|
doorCoordsY[0] = 39;
|
||||||
break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
nDoors = 2;
|
nDoors = 2;
|
||||||
x[0] = 1;
|
doorCoordsX[0] = 1;
|
||||||
x[1] = 7;
|
doorCoordsX[1] = 7;
|
||||||
y[0] = 0x34;
|
doorCoordsY[0] = 52;
|
||||||
y[1] = 0x34;
|
doorCoordsY[1] = 52;
|
||||||
break;
|
break;
|
||||||
case 6:
|
case 6:
|
||||||
nDoors = 1;
|
nDoors = 1;
|
||||||
x[0] = 1;
|
doorCoordsX[0] = 1;
|
||||||
y[0] = 0x41;
|
doorCoordsY[0] = 65;
|
||||||
break;
|
break;
|
||||||
case 7:
|
case 7:
|
||||||
nDoors = 1;
|
nDoors = 1;
|
||||||
x[0] = 7;
|
doorCoordsX[0] = 7;
|
||||||
y[0] = 0xd;
|
doorCoordsY[0] = 13;
|
||||||
break;
|
break;
|
||||||
case 8:
|
case 8:
|
||||||
nDoors = 1;
|
nDoors = 1;
|
||||||
x[0] = 1;
|
doorCoordsX[0] = 1;
|
||||||
y[0] = 0x1a;
|
doorCoordsY[0] = 26;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
for (i = 0; i < nDoors; i++)
|
for (i = 0; i < nDoors; i++)
|
||||||
{
|
{
|
||||||
MapGridSetMetatileIdAt(x[i] + 7, y[i] + 7, a1 | METATILE_COLLISION_MASK);
|
MapGridSetMetatileIdAt(doorCoordsX[i] + 7, doorCoordsY[i] + 7, metatileId | METATILE_COLLISION_MASK);
|
||||||
MapGridSetMetatileIdAt(x[i] + 7, y[i] + 8, (a1 + 8) | METATILE_COLLISION_MASK);
|
MapGridSetMetatileIdAt(doorCoordsX[i] + 7, doorCoordsY[i] + 8, (metatileId + 8) | METATILE_COLLISION_MASK);
|
||||||
}
|
}
|
||||||
DrawWholeMapView();
|
DrawWholeMapView();
|
||||||
}
|
}
|
||||||
|
|
||||||
void PetalburgGymSpecial2(void)
|
void PetalburgGymSpecial2(void)
|
||||||
{
|
{
|
||||||
PetalburgGymFunc(gSpecialVar_0x8004, gUnknown_085B2B7E[4]);
|
PetalburgGymFunc(gSpecialVar_0x8004, sPetalburgGymSlidingDoorMetatiles[4]);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ShowFieldMessageStringVar4(void)
|
void ShowFieldMessageStringVar4(void)
|
||||||
@ -1070,6 +1077,7 @@ static void PCTurnOnEffect_0(struct Task *task)
|
|||||||
task->data[3]++;
|
task->data[3]++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// enum pc location,
|
||||||
static void PCTurnOnEffect_1(s16 flag, s8 dx, s8 dy)
|
static void PCTurnOnEffect_1(s16 flag, s8 dx, s8 dy)
|
||||||
{
|
{
|
||||||
u16 tileId = 0;
|
u16 tileId = 0;
|
||||||
@ -1077,30 +1085,30 @@ static void PCTurnOnEffect_1(s16 flag, s8 dx, s8 dy)
|
|||||||
{
|
{
|
||||||
if (gSpecialVar_0x8004 == 0)
|
if (gSpecialVar_0x8004 == 0)
|
||||||
{
|
{
|
||||||
tileId = 0x4;
|
tileId = METATILE_ID(Building, PC_Off);
|
||||||
}
|
}
|
||||||
else if (gSpecialVar_0x8004 == 1)
|
else if (gSpecialVar_0x8004 == 1)
|
||||||
{
|
{
|
||||||
tileId = 0x25a;
|
tileId = METATILE_ID(BrendansMaysHouse, BrendanPC_Off);
|
||||||
}
|
}
|
||||||
else if (gSpecialVar_0x8004 == 2)
|
else if (gSpecialVar_0x8004 == 2)
|
||||||
{
|
{
|
||||||
tileId = 0x259;
|
tileId = METATILE_ID(BrendansMaysHouse, MayPC_Off);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (gSpecialVar_0x8004 == 0)
|
if (gSpecialVar_0x8004 == 0)
|
||||||
{
|
{
|
||||||
tileId = 0x5;
|
tileId = METATILE_ID(Building, PC_On);
|
||||||
}
|
}
|
||||||
else if (gSpecialVar_0x8004 == 1)
|
else if (gSpecialVar_0x8004 == 1)
|
||||||
{
|
{
|
||||||
tileId = 0x27f;
|
tileId = METATILE_ID(BrendansMaysHouse, BrendanPC_On);
|
||||||
}
|
}
|
||||||
else if (gSpecialVar_0x8004 == 2)
|
else if (gSpecialVar_0x8004 == 2)
|
||||||
{
|
{
|
||||||
tileId = 0x27e;
|
tileId = METATILE_ID(BrendansMaysHouse, MayPC_On);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + dx + 7, gSaveBlock1Ptr->pos.y + dy + 7, tileId | METATILE_COLLISION_MASK);
|
MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + dx + 7, gSaveBlock1Ptr->pos.y + dy + 7, tileId | METATILE_COLLISION_MASK);
|
||||||
@ -1134,15 +1142,15 @@ static void PCTurnOffEffect(void)
|
|||||||
}
|
}
|
||||||
if (gSpecialVar_0x8004 == 0)
|
if (gSpecialVar_0x8004 == 0)
|
||||||
{
|
{
|
||||||
tileId = 0x4;
|
tileId = METATILE_ID(Building, PC_Off);
|
||||||
}
|
}
|
||||||
else if (gSpecialVar_0x8004 == 1)
|
else if (gSpecialVar_0x8004 == 1)
|
||||||
{
|
{
|
||||||
tileId = 0x25a;
|
tileId = METATILE_ID(BrendansMaysHouse, BrendanPC_Off);
|
||||||
}
|
}
|
||||||
else if (gSpecialVar_0x8004 == 2)
|
else if (gSpecialVar_0x8004 == 2)
|
||||||
{
|
{
|
||||||
tileId = 0x259;
|
tileId = METATILE_ID(BrendansMaysHouse, MayPC_Off);
|
||||||
}
|
}
|
||||||
MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + dx + 7, gSaveBlock1Ptr->pos.y + dy + 7, tileId | METATILE_COLLISION_MASK);
|
MapGridSetMetatileIdAt(gSaveBlock1Ptr->pos.x + dx + 7, gSaveBlock1Ptr->pos.y + dy + 7, tileId | METATILE_COLLISION_MASK);
|
||||||
DrawWholeMapView();
|
DrawWholeMapView();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user