Merge pull request #558 from GriffinRichards/doc-intro

Document intro
This commit is contained in:
GriffinR
2022-09-30 01:53:07 -04:00
committed by GitHub
64 changed files with 1525 additions and 1343 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 546 B

Before

Width:  |  Height:  |  Size: 138 B

After

Width:  |  Height:  |  Size: 138 B

Before

Width:  |  Height:  |  Size: 380 B

After

Width:  |  Height:  |  Size: 380 B

Before

Width:  |  Height:  |  Size: 351 B

After

Width:  |  Height:  |  Size: 351 B

Before

Width:  |  Height:  |  Size: 216 B

After

Width:  |  Height:  |  Size: 216 B

+19
View File
@@ -0,0 +1,19 @@
JASC-PAL
0100
16
0 0 0
0 0 0
0 0 32
0 0 74
0 0 115
24 24 123
49 49 139
82 82 156
106 106 172
139 139 189
164 164 205
197 197 222
222 222 238
255 255 255
0 0 0
0 0 0

Before

Width:  |  Height:  |  Size: 333 B

After

Width:  |  Height:  |  Size: 333 B

Before

Width:  |  Height:  |  Size: 203 B

After

Width:  |  Height:  |  Size: 203 B

Before

Width:  |  Height:  |  Size: 198 B

After

Width:  |  Height:  |  Size: 198 B

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

Before

Width:  |  Height:  |  Size: 872 B

After

Width:  |  Height:  |  Size: 872 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Before

Width:  |  Height:  |  Size: 649 B

After

Width:  |  Height:  |  Size: 649 B

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Before

Width:  |  Height:  |  Size: 426 B

After

Width:  |  Height:  |  Size: 426 B

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Before

Width:  |  Height:  |  Size: 578 B

After

Width:  |  Height:  |  Size: 578 B

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Before

Width:  |  Height:  |  Size: 234 B

After

Width:  |  Height:  |  Size: 234 B

Before

Width:  |  Height:  |  Size: 451 B

After

Width:  |  Height:  |  Size: 451 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 554 B

-19
View File
@@ -1,19 +0,0 @@
JASC-PAL
0100
16
24 41 74
0 0 0
139 123 16
189 172 16
131 164 65
148 230 49
255 0 255
255 0 255
255 0 255
255 0 255
255 0 255
222 222 222
24 41 74
82 82 82
180 180 180
255 255 255
-19
View File
@@ -1,19 +0,0 @@
JASC-PAL
0100
16
255 255 255
115 197 106
41 164 8
82 180 65
139 222 131
98 197 82
255 0 255
255 0 255
255 0 255
255 0 255
255 0 255
16 139 98
16 115 98
24 90 90
32 74 90
32 65 82
-19
View File
@@ -1,19 +0,0 @@
JASC-PAL
0100
16
0 0 255
255 255 255
255 0 255
255 0 255
255 0 255
255 0 255
255 0 255
255 0 255
238 246 246
222 230 230
180 189 197
148 156 172
106 123 139
74 90 115
41 57 90
0 0 0
-19
View File
@@ -1,19 +0,0 @@
JASC-PAL
0100
16
0 0 0
131 238 115
82 189 74
57 164 57
115 213 98
16 123 16
164 255 131
255 0 255
255 0 255
255 0 255
255 0 255
255 0 255
255 0 255
255 0 255
255 148 0
164 222 98
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

-19
View File
@@ -1,19 +0,0 @@
JASC-PAL
0100
16
0 0 0
164 238 139
57 148 57
131 213 115
156 230 156
131 205 148
106 180 131
65 139 98
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
255 0 0
-19
View File
@@ -1,19 +0,0 @@
JASC-PAL
0100
16
0 0 0
238 246 189
0 0 0
0 0 0
115 213 255
156 222 255
205 238 255
255 255 255
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
-19
View File
@@ -1,19 +0,0 @@
JASC-PAL
0100
16
197 222 205
255 255 255
222 222 222
123 123 123
156 222 255
189 230 255
222 238 255
255 255 255
255 180 123
238 98 74
205 57 32
197 131 180
164 98 148
131 65 123
90 57 90
16 16 16
+10 -4
View File
@@ -537,14 +537,20 @@ graphics/misc/emoticons.4bpp: %.4bpp: %.png
$(ITEMMENUGFXDIR)/bag_tiles.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 55
$(INTROGFXDIR)/unk_8402D54.4bpp: %.4bpp: %.png
$(INTROGFXDIR)/scene_1/grass.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 397
$(INTROGFXDIR)/unk_8406654.4bpp: %.4bpp: %.png
$(INTROGFXDIR)/scene_2/plants.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 17
$(INTROGFXDIR)/scene_2/nidorino_close.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 170
$(INTROGFXDIR)/unk_8405B28.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 17
$(INTROGFXDIR)/scene_2/gengar_close.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 114
$(INTROGFXDIR)/scene_3/gengar_anim.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 348
$(BATTLETERRAINGFXDIR)/building/terrain.4bpp: %.4bpp: %.png
$(GFX) $< $@ -num_tiles 77
+8 -1
View File
@@ -552,6 +552,7 @@
#define WININ_WIN0_BG_ALL (WININ_WIN0_BG0 | WININ_WIN0_BG1 | WININ_WIN0_BG2 | WININ_WIN0_BG3)
#define WININ_WIN0_OBJ (1 << 4)
#define WININ_WIN0_CLR (1 << 5)
#define WININ_WIN0_ALL (WININ_WIN0_BG_ALL | WININ_WIN0_OBJ | WININ_WIN0_CLR)
#define WININ_WIN1_BG0 (1 << 8)
#define WININ_WIN1_BG1 (1 << 9)
#define WININ_WIN1_BG2 (1 << 10)
@@ -559,6 +560,7 @@
#define WININ_WIN1_BG_ALL (WININ_WIN1_BG0 | WININ_WIN1_BG1 | WININ_WIN1_BG2 | WININ_WIN1_BG3)
#define WININ_WIN1_OBJ (1 << 12)
#define WININ_WIN1_CLR (1 << 13)
#define WININ_WIN1_ALL (WININ_WIN1_BG_ALL | WININ_WIN1_OBJ | WININ_WIN1_CLR)
#define WINOUT_WIN01_BG0 (1 << 0)
#define WINOUT_WIN01_BG1 (1 << 1)
@@ -567,6 +569,7 @@
#define WINOUT_WIN01_BG_ALL (WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_BG3)
#define WINOUT_WIN01_OBJ (1 << 4)
#define WINOUT_WIN01_CLR (1 << 5)
#define WINOUT_WIN01_ALL (WINOUT_WIN01_BG_ALL | WINOUT_WIN01_OBJ | WINOUT_WIN01_CLR)
#define WINOUT_WINOBJ_BG0 (1 << 8)
#define WINOUT_WINOBJ_BG1 (1 << 9)
#define WINOUT_WINOBJ_BG2 (1 << 10)
@@ -574,6 +577,7 @@
#define WINOUT_WINOBJ_BG_ALL (WINOUT_WINOBJ_BG0 | WINOUT_WINOBJ_BG1 | WINOUT_WINOBJ_BG2 | WINOUT_WINOBJ_BG3)
#define WINOUT_WINOBJ_OBJ (1 << 12)
#define WINOUT_WINOBJ_CLR (1 << 13)
#define WINOUT_WINOBJ_ALL (WINOUT_WINOBJ_BG_ALL | WINOUT_WINOBJ_OBJ | WINOUT_WINOBJ_CLR)
#define WIN_RANGE(a, b) (((a) << 8) | (b))
#define WIN_RANGE2(a, b) ((b) | ((a) << 8))
@@ -584,8 +588,10 @@
#define BLDCNT_TGT1_BG1 (1 << 1)
#define BLDCNT_TGT1_BG2 (1 << 2)
#define BLDCNT_TGT1_BG3 (1 << 3)
#define BLDCNT_TGT1_BG_ALL (BLDCNT_TGT1_BG0 | BLDCNT_TGT1_BG1 | BLDCNT_TGT1_BG2 | BLDCNT_TGT1_BG3)
#define BLDCNT_TGT1_OBJ (1 << 4)
#define BLDCNT_TGT1_BD (1 << 5)
#define BLDCNT_TGT1_ALL (BLDCNT_TGT1_BG_ALL | BLDCNT_TGT1_OBJ | BLDCNT_TGT1_BD)
// Bits 6-7 select the special effect
#define BLDCNT_EFFECT_NONE (0 << 6) // no special effect
#define BLDCNT_EFFECT_BLEND (1 << 6) // 1st+2nd targets mixed (controlled by BLDALPHA)
@@ -596,9 +602,10 @@
#define BLDCNT_TGT2_BG1 (1 << 9)
#define BLDCNT_TGT2_BG2 (1 << 10)
#define BLDCNT_TGT2_BG3 (1 << 11)
#define BLDCNT_TGT2_BG_ALL (BLDCNT_TGT2_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3)
#define BLDCNT_TGT2_OBJ (1 << 12)
#define BLDCNT_TGT2_BD (1 << 13)
#define BLDCNT_TGT2_ALL (BLDCNT_TGT2_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD)
#define BLDCNT_TGT2_ALL (BLDCNT_TGT2_BG_ALL | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD)
// BLDALPHA
#define BLDALPHA_BLEND(target1, target2) (((target2) << 8) | (target1))
+2 -2
View File
@@ -1,7 +1,7 @@
#ifndef GUARD_INTRO_H
#define GUARD_INTRO_H
void CB2_CopyrightScreen(void);
void c2_copyright_1(void);
void CB2_InitCopyrightScreenAfterTitleScreen(void);
void CB2_InitCopyrightScreenAfterBootup(void);
#endif //GUARD_INTRO_H
+3 -2
View File
@@ -15,8 +15,9 @@ u16 Random2(void);
// The number 1103515245 comes from the example implementation of rand and srand
// in the ISO C standard.
#define ISO_RANDOMIZE1(val)(1103515245 * (val) + 24691)
#define ISO_RANDOMIZE2(val)(1103515245 * (val) + 12345)
#define RAND_MULT 1103515245
#define ISO_RANDOMIZE1(val)(RAND_MULT * (val) + 24691)
#define ISO_RANDOMIZE2(val)(RAND_MULT * (val) + 12345)
//Sets the initial seed value of the pseudorandom number generator
void SeedRng(u16 seed);
+5 -2
View File
@@ -7,6 +7,9 @@
#define SPRITE_NONE 0xFF
#define TAG_NONE 0xFFFF
// Given to SetSpriteMatrixAnchor to skip anchoring one of the coords.
#define NO_ANCHOR 0x800
struct SpriteSheet
{
const void *data; // Raw uncompressed pixel data
@@ -228,7 +231,7 @@ struct Sprite
u16 animEnded:1; //0x10
u16 affineAnimEnded:1; //0x20
u16 usingSheet:1; //0x40
u16 flags_f:1; //0x80
u16 anchored:1; //0x80
/*0x40*/ u16 sheetTileStart;
@@ -316,6 +319,6 @@ void ClearSpriteCopyRequests(void);
void ResetAffineAnimData(void);
void FreeSpriteTilesIfNotUsingSheet(struct Sprite *sprite);
s16 AllocSpriteTiles(u16 tileCount);
void obj_pos2_update_enable(struct Sprite* sprite, s16 xmod, s16 ymod);
void SetSpriteMatrixAnchor(struct Sprite* sprite, s16 xmod, s16 ymod);
#endif //GUARD_SPRITE_H
+92 -92
View File
@@ -600,58 +600,58 @@ u32 ChangeBgX(u8 bg, u32 value, u8 op)
switch (op)
{
case 0:
default:
sGpuBgConfigs2[bg].bg_x = value;
break;
case 1:
sGpuBgConfigs2[bg].bg_x += value;
break;
case 2:
sGpuBgConfigs2[bg].bg_x -= value;
break;
case BG_COORD_SET:
default:
sGpuBgConfigs2[bg].bg_x = value;
break;
case BG_COORD_ADD:
sGpuBgConfigs2[bg].bg_x += value;
break;
case BG_COORD_SUB:
sGpuBgConfigs2[bg].bg_x -= value;
break;
}
mode = GetBgMode();
switch (bg)
{
case 0:
temp1 = sGpuBgConfigs2[0].bg_x >> 0x8;
SetGpuReg(REG_OFFSET_BG0HOFS, temp1);
break;
case 1:
temp1 = sGpuBgConfigs2[1].bg_x >> 0x8;
SetGpuReg(REG_OFFSET_BG1HOFS, temp1);
break;
case 2:
if (mode == 0)
{
temp1 = sGpuBgConfigs2[2].bg_x >> 0x8;
SetGpuReg(REG_OFFSET_BG2HOFS, temp1);
}
else
{
temp1 = sGpuBgConfigs2[2].bg_x >> 0x10;
temp2 = sGpuBgConfigs2[2].bg_x & 0xFFFF;
SetGpuReg(REG_OFFSET_BG2X_H, temp1);
SetGpuReg(REG_OFFSET_BG2X_L, temp2);
}
break;
case 3:
if (mode == 0)
{
temp1 = sGpuBgConfigs2[3].bg_x >> 0x8;
SetGpuReg(REG_OFFSET_BG3HOFS, temp1);
}
else if (mode == 2)
{
temp1 = sGpuBgConfigs2[3].bg_x >> 0x10;
temp2 = sGpuBgConfigs2[3].bg_x & 0xFFFF;
SetGpuReg(REG_OFFSET_BG3X_H, temp1);
SetGpuReg(REG_OFFSET_BG3X_L, temp2);
}
break;
case 0:
temp1 = sGpuBgConfigs2[0].bg_x >> 0x8;
SetGpuReg(REG_OFFSET_BG0HOFS, temp1);
break;
case 1:
temp1 = sGpuBgConfigs2[1].bg_x >> 0x8;
SetGpuReg(REG_OFFSET_BG1HOFS, temp1);
break;
case 2:
if (mode == 0)
{
temp1 = sGpuBgConfigs2[2].bg_x >> 0x8;
SetGpuReg(REG_OFFSET_BG2HOFS, temp1);
}
else
{
temp1 = sGpuBgConfigs2[2].bg_x >> 0x10;
temp2 = sGpuBgConfigs2[2].bg_x & 0xFFFF;
SetGpuReg(REG_OFFSET_BG2X_H, temp1);
SetGpuReg(REG_OFFSET_BG2X_L, temp2);
}
break;
case 3:
if (mode == 0)
{
temp1 = sGpuBgConfigs2[3].bg_x >> 0x8;
SetGpuReg(REG_OFFSET_BG3HOFS, temp1);
}
else if (mode == 2)
{
temp1 = sGpuBgConfigs2[3].bg_x >> 0x10;
temp2 = sGpuBgConfigs2[3].bg_x & 0xFFFF;
SetGpuReg(REG_OFFSET_BG3X_H, temp1);
SetGpuReg(REG_OFFSET_BG3X_L, temp2);
}
break;
}
return sGpuBgConfigs2[bg].bg_x;
@@ -679,58 +679,58 @@ u32 ChangeBgY(u8 bg, u32 value, u8 op)
switch (op)
{
case 0:
default:
sGpuBgConfigs2[bg].bg_y = value;
break;
case 1:
sGpuBgConfigs2[bg].bg_y += value;
break;
case 2:
sGpuBgConfigs2[bg].bg_y -= value;
break;
case BG_COORD_SET:
default:
sGpuBgConfigs2[bg].bg_y = value;
break;
case BG_COORD_ADD:
sGpuBgConfigs2[bg].bg_y += value;
break;
case BG_COORD_SUB:
sGpuBgConfigs2[bg].bg_y -= value;
break;
}
mode = GetBgMode();
switch (bg)
{
case 0:
temp1 = sGpuBgConfigs2[0].bg_y >> 0x8;
SetGpuReg(REG_OFFSET_BG0VOFS, temp1);
break;
case 1:
temp1 = sGpuBgConfigs2[1].bg_y >> 0x8;
SetGpuReg(REG_OFFSET_BG1VOFS, temp1);
break;
case 2:
if (mode == 0)
{
temp1 = sGpuBgConfigs2[2].bg_y >> 0x8;
SetGpuReg(REG_OFFSET_BG2VOFS, temp1);
}
else
{
temp1 = sGpuBgConfigs2[2].bg_y >> 0x10;
temp2 = sGpuBgConfigs2[2].bg_y & 0xFFFF;
SetGpuReg(REG_OFFSET_BG2Y_H, temp1);
SetGpuReg(REG_OFFSET_BG2Y_L, temp2);
}
break;
case 3:
if (mode == 0)
{
temp1 = sGpuBgConfigs2[3].bg_y >> 0x8;
SetGpuReg(REG_OFFSET_BG3VOFS, temp1);
}
else if (mode == 2)
{
temp1 = sGpuBgConfigs2[3].bg_y >> 0x10;
temp2 = sGpuBgConfigs2[3].bg_y & 0xFFFF;
SetGpuReg(REG_OFFSET_BG3Y_H, temp1);
SetGpuReg(REG_OFFSET_BG3Y_L, temp2);
}
break;
case 0:
temp1 = sGpuBgConfigs2[0].bg_y >> 0x8;
SetGpuReg(REG_OFFSET_BG0VOFS, temp1);
break;
case 1:
temp1 = sGpuBgConfigs2[1].bg_y >> 0x8;
SetGpuReg(REG_OFFSET_BG1VOFS, temp1);
break;
case 2:
if (mode == 0)
{
temp1 = sGpuBgConfigs2[2].bg_y >> 0x8;
SetGpuReg(REG_OFFSET_BG2VOFS, temp1);
}
else
{
temp1 = sGpuBgConfigs2[2].bg_y >> 0x10;
temp2 = sGpuBgConfigs2[2].bg_y & 0xFFFF;
SetGpuReg(REG_OFFSET_BG2Y_H, temp1);
SetGpuReg(REG_OFFSET_BG2Y_L, temp2);
}
break;
case 3:
if (mode == 0)
{
temp1 = sGpuBgConfigs2[3].bg_y >> 0x8;
SetGpuReg(REG_OFFSET_BG3VOFS, temp1);
}
else if (mode == 2)
{
temp1 = sGpuBgConfigs2[3].bg_y >> 0x10;
temp2 = sGpuBgConfigs2[3].bg_y & 0xFFFF;
SetGpuReg(REG_OFFSET_BG3Y_H, temp1);
SetGpuReg(REG_OFFSET_BG3Y_L, temp2);
}
break;
}
return sGpuBgConfigs2[bg].bg_y;
+1355 -1049
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -206,7 +206,7 @@ static void InitMainCallbacks(void)
gMain.vblankCounter1 = 0;
gMain.vblankCounter2 = 0;
gMain.callback1 = NULL;
SetMainCallback2(c2_copyright_1);
SetMainCallback2(CB2_InitCopyrightScreenAfterBootup);
gSaveBlock2Ptr = &gSaveBlock2;
gSaveBlock1Ptr = &gSaveBlock1;
gSaveBlock2.encryptionKey = 0;
+1 -2
View File
@@ -80,8 +80,7 @@ static bool32 RunMinigameCountdownDigitsAnim(u8 spriteId)
switch (sprite->data[0])
{
case 0:
// some sort of affine transform; x transform disabled
obj_pos2_update_enable(sprite, 0x800, 0x1A);
SetSpriteMatrixAnchor(sprite, NO_ANCHOR, 26);
sprite->data[0]++;
// fallthrough
case 1:
+3 -3
View File
@@ -8,6 +8,7 @@
#include "menu.h"
#include "new_menu_helpers.h"
#include "pokemon_special_anim_internal.h"
#include "random.h"
#include "strings.h"
#include "text_window.h"
#include "trig.h"
@@ -1308,7 +1309,7 @@ static void Task_UseItem_OutwardSpiralDots(u8 taskId)
static u16 PSAScene_RandomFromTask(u8 taskId)
{
u32 state = GetWordTaskArg(taskId, tOff_RngState);
state = state * 1103515245 + 24691;
state = ISO_RANDOMIZE1(state);
SetWordTaskArg(taskId, tOff_RngState, state);
return state >> 16;
}
@@ -1446,8 +1447,7 @@ static void CreateLevelUpVerticalSprite(u8 taskId, s16 *data)
{
gSprites[spriteId].oam.priority = tPriority;
gSprites[spriteId].tsYsubpixel = 0;
// similar to the LCRNG in random.c, but seeding from data[2]
gSprites[spriteId].tsSpeed = ((tMadeSprCt * 1103515245 + 24691) & 0x3F) + 0x20;
gSprites[spriteId].tsSpeed = (ISO_RANDOMIZE1(tMadeSprCt) & 0x3F) + 0x20;
gSprites[spriteId].tsTaskId = taskId;
tActiveSprCt++;
}
+21 -48
View File
@@ -5,6 +5,9 @@
#define OAM_MATRIX_COUNT 32
#define sAnchorX data[6]
#define sAnchorY data[7]
#define SET_SPRITE_TILE_RANGE(index, start, count) \
{ \
sSpriteTileRanges[index * 2] = start; \
@@ -83,7 +86,7 @@ static void ApplyAffineAnimFrame(u8 matrixNum, struct AffineAnimFrameCmd *frameC
static u8 IndexOfSpriteTileTag(u16 tag);
static void AllocSpriteTileRange(u16 tag, u16 start, u16 count);
static void DoLoadSpritePalette(const u16 *src, u16 paletteOffset);
static void obj_update_pos2(struct Sprite* sprite, s32 a1, s32 a2);
static void UpdateSpriteMatrixAnchorPos(struct Sprite* sprite, s32 a1, s32 a2);
typedef void (*AnimFunc)(struct Sprite *);
typedef void (*AnimCmdFunc)(struct Sprite *);
@@ -161,41 +164,11 @@ static const struct Sprite sDummySprite =
{
.oam = DUMMY_OAM_DATA,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.template = &gDummySpriteTemplate,
.subspriteTables = NULL,
.callback = SpriteCallbackDummy,
.x = 304, .y = 160,
.x2 = 0, .y2 = 0,
.centerToCornerVecX = 0,
.centerToCornerVecY = 0,
.animNum = 0,
.animCmdIndex = 0,
.animDelayCounter = 0,
.animPaused = 0,
.affineAnimPaused = 0,
.animLoopCounter = 0,
.data = {0, 0, 0, 0, 0, 0, 0},
.inUse = 0,
.coordOffsetEnabled = 0,
.invisible = 0,
.flags_3 = 0,
.flags_4 = 0,
.flags_5 = 0,
.flags_6 = 0,
.flags_7 = 0,
.hFlip = 0,
.vFlip = 0,
.animBeginning = 0,
.affineAnimBeginning = 0,
.animEnded = 0,
.affineAnimEnded = 0,
.usingSheet = 0,
.flags_f = 0,
.sheetTileStart = 0,
.subspriteTableNum = 0,
.subspriteMode = 0,
.x = DISPLAY_WIDTH + 64,
.y = DISPLAY_HEIGHT,
.subpriority = 0xFF
};
@@ -212,7 +185,7 @@ const union AffineAnimCmd * const gDummySpriteAffineAnimTable[] = { &sDummyAffin
const struct SpriteTemplate gDummySpriteTemplate =
{
.tileTag = 0,
.paletteTag = 0xFFFF,
.paletteTag = TAG_NONE,
.oam = &gDummyOamData,
.anims = gDummySpriteAnimTable,
.images = NULL,
@@ -1099,8 +1072,8 @@ void BeginAffineAnim(struct Sprite *sprite)
sprite->affineAnimEnded = FALSE;
ApplyAffineAnimFrame(matrixNum, &frameCmd);
sAffineAnimStates[matrixNum].delayCounter = frameCmd.duration;
if (sprite->flags_f)
obj_update_pos2(sprite, sprite->data[6], sprite->data[7]);
if (sprite->anchored)
UpdateSpriteMatrixAnchorPos(sprite, sprite->sAnchorX, sprite->sAnchorY);
}
}
@@ -1125,8 +1098,8 @@ void ContinueAffineAnim(struct Sprite *sprite)
funcIndex = type - 32765;
sAffineAnimCmdFuncs[funcIndex](matrixNum, sprite);
}
if (sprite->flags_f)
obj_update_pos2(sprite, sprite->data[6], sprite->data[7]);
if (sprite->anchored)
UpdateSpriteMatrixAnchorPos(sprite, sprite->sAnchorX, sprite->sAnchorY);
}
}
@@ -1220,14 +1193,14 @@ u8 GetSpriteMatrixNum(struct Sprite *sprite)
return matrixNum;
}
void obj_pos2_update_enable(struct Sprite* sprite, s16 xmod, s16 ymod)
void SetSpriteMatrixAnchor(struct Sprite* sprite, s16 x, s16 y)
{
sprite->data[6] = xmod;
sprite->data[7] = ymod;
sprite->flags_f = 1;
sprite->sAnchorX = x;
sprite->sAnchorY = y;
sprite->anchored = TRUE;
}
static s32 affine_get_new_pos2(s32 baseDim, s32 xformed, s32 modifier)
static s32 GetAnchorCoord(s32 baseDim, s32 xformed, s32 modifier)
{
s32 subResult, shiftResult;
@@ -1239,24 +1212,24 @@ static s32 affine_get_new_pos2(s32 baseDim, s32 xformed, s32 modifier)
return modifier - ((u32)(modifier * xformed) / (u32)(baseDim) + shiftResult);
}
static void obj_update_pos2(struct Sprite *sprite, s32 xmod, s32 ymod)
static void UpdateSpriteMatrixAnchorPos(struct Sprite *sprite, s32 x, s32 y)
{
s32 dim, baseDim, xFormed;
u32 matrixNum = sprite->oam.matrixNum;
if (xmod != 0x800)
if (x != NO_ANCHOR)
{
dim = sOamDimensionsCopy[sprite->oam.shape][sprite->oam.size][0];
baseDim = dim << 8;
xFormed = (dim << 16) / gOamMatrices[matrixNum].a;
sprite->x2 = affine_get_new_pos2(baseDim, xFormed, xmod);
sprite->x2 = GetAnchorCoord(baseDim, xFormed, x);
}
if (ymod != 0x800)
if (y != NO_ANCHOR)
{
dim = sOamDimensionsCopy[sprite->oam.shape][sprite->oam.size][1];
baseDim = dim << 8;
xFormed = (dim << 16) / gOamMatrices[matrixNum].d;
sprite->y2 = affine_get_new_pos2(baseDim, xFormed, ymod);
sprite->y2 = GetAnchorCoord(baseDim, xFormed, y);
}
}
+3 -2
View File
@@ -9,6 +9,7 @@
#include "intro.h"
#include "load_save.h"
#include "new_game.h"
#include "random.h"
#include "save.h"
#include "main_menu.h"
#include "clear_save_data_screen.h"
@@ -662,7 +663,7 @@ static void SetTitleScreenScene_Restart(s16 * data)
case 4:
HelpSystem_Disable();
DestroyTask(FindTaskIdByFunc(Task_TitleScreenMain));
SetMainCallback2(CB2_CopyrightScreen);
SetMainCallback2(CB2_InitCopyrightScreenAfterTitleScreen);
break;
}
}
@@ -1121,7 +1122,7 @@ static u16 TitleScreen_rand(u8 taskId, u8 field)
u32 rngval;
rngval = GetWordTaskArg(taskId, field);
rngval = rngval * 1103515245 + 24691;
rngval = ISO_RANDOMIZE1(rngval);
SetWordTaskArg(taskId, field, rngval);
return rngval >> 16;
}
+2 -2
View File
@@ -3,6 +3,7 @@
#include "wild_encounter.h"
#include "event_data.h"
#include "fieldmap.h"
#include "random.h"
#include "roamer.h"
#include "field_player_avatar.h"
#include "battle_setup.h"
@@ -668,8 +669,7 @@ void SeedWildEncounterRng(u16 seed)
static u16 WildEncounterRandom(void)
{
sWildEncounterData.rngState *= 1103515245;
sWildEncounterData.rngState += 12345;
sWildEncounterData.rngState = ISO_RANDOMIZE2(sWildEncounterData.rngState);
return sWildEncounterData.rngState >> 16;
}