diff options
author | Cameron Hall <camthesaxman@users.noreply.github.com> | 2017-01-27 13:06:20 -0500 |
---|---|---|
committer | YamaArashi <YamaArashi@users.noreply.github.com> | 2017-01-27 10:06:20 -0800 |
commit | b9ff56bd89ac11a9b40b34f834dcf7a5be4d90a6 (patch) | |
tree | 4ee0f20cf1c2dc523108c424bb435cbd0bd43542 /include | |
parent | 72bc8f23d37c6efd68ad4a0f86ba87b6cd3db4d2 (diff) |
define more data in C (#219)
* define some graphics data in C
* define wild pokemon in C
* use less #ifdefs
* define data in berry.c
Diffstat (limited to 'include')
-rw-r--r-- | include/berry.h | 12 | ||||
-rw-r--r-- | include/global.berry.h | 6 | ||||
-rw-r--r-- | include/sprite.h | 30 | ||||
-rw-r--r-- | include/wallclock.h | 5 |
4 files changed, 36 insertions, 17 deletions
diff --git a/include/berry.h b/include/berry.h index 152f92e38..f17799870 100644 --- a/include/berry.h +++ b/include/berry.h @@ -1,11 +1,21 @@ #ifndef GUARD_BERRY_H #define GUARD_BERRY_H +enum +{ + BERRY_FIRMNESS_UNKNOWN, + BERRY_FIRMNESS_VERY_SOFT, + BERRY_FIRMNESS_SOFT, + BERRY_FIRMNESS_HARD, + BERRY_FIRMNESS_VERY_HARD, + BERRY_FIRMNESS_SUPER_HARD, +}; + void ClearEnigmaBerries(void); void SetEnigmaBerry(u8 *src); u32 GetEnigmaBerryChecksum(struct EnigmaBerry *enigmaBerry); bool32 IsEnigmaBerryValid(void); -struct Berry *GetBerryInfo(u8 berry); +const struct Berry *GetBerryInfo(u8 berry); struct BerryTree *GetBerryTreeInfo(u8 id); bool32 FieldObjectInteractionWaterBerryTree(void); bool32 IsPlayerFacingPlantedBerryTree(void); diff --git a/include/global.berry.h b/include/global.berry.h index 8b98a5f58..b7938868d 100644 --- a/include/global.berry.h +++ b/include/global.berry.h @@ -3,13 +3,13 @@ struct Berry { - u8 name[7]; + const u8 name[7]; u8 firmness; u16 size; u8 maxYield; u8 minYield; - u8 *description1; - u8 *description2; + const u8 *description1; + const u8 *description2; u8 stageDuration; u8 spicy; u8 dry; diff --git a/include/sprite.h b/include/sprite.h index 721616e9e..7a2dd8494 100644 --- a/include/sprite.h +++ b/include/sprite.h @@ -5,7 +5,7 @@ struct SpriteSheet { - u8 *data; + const u8 *data; u16 size; u16 tag; }; @@ -18,7 +18,7 @@ struct SpriteFrameImage struct SpritePalette { - u16 *data; + const u16 *data; u16 tag; }; @@ -53,6 +53,13 @@ union AnimCmd struct AnimJumpCmd jump; }; +#define ANIMCMD_FRAME(_imageValue, _duration) \ + {.frame = {.imageValue = _imageValue, .duration = _duration}} +#define ANIMCMD_JUMP(_target) \ + {.jump = {.type = -2, .target = _target}} +#define ANIMCMD_END \ + {.type = -1} + struct AffineAnimFrameCmd { s16 xScale; @@ -61,6 +68,11 @@ struct AffineAnimFrameCmd u8 duration; }; +#define AFFINEANIMCMD_FRAME(_xScale, _yScale, _rotation, _duration) \ + {.frame = {.xScale = _xScale, .yScale = _yScale, .rotation = _rotation, .duration = _duration}} +#define AFFINEANIMCMD_END \ + {.type = 0x7FFF} + struct AffineAnimLoopCmd { s16 type; @@ -121,19 +133,19 @@ struct SpriteTemplate { u16 tileTag; u16 paletteTag; - struct OamData *oam; - union AnimCmd **anims; + const struct OamData *oam; + const union AnimCmd *const *anims; struct SpriteFrameImage *images; - union AffineAnimCmd **affineAnims; + const union AffineAnimCmd *const *affineAnims; void (*callback)(struct Sprite *); }; struct Sprite { /*0x00*/ struct OamData oam; - /*0x08*/ union AnimCmd **anims; + /*0x08*/ const union AnimCmd *const *anims; /*0x0C*/ struct SpriteFrameImage *images; - /*0x10*/ union AffineAnimCmd **affineAnims; + /*0x10*/ const union AffineAnimCmd *const *affineAnims; /*0x14*/ const struct SpriteTemplate *template; /*0x18*/ const struct SubspriteTable *subspriteTables; /*0x1C*/ void (*callback)(struct Sprite *); @@ -204,7 +216,7 @@ void SetOamMatrix(u8 matrixNum, u16 a, u16 b, u16 c, u16 d); void CalcCenterToCornerVec(struct Sprite *sprite, u8 shape, u8 size, u8 affineMode); void SpriteCallbackDummy(struct Sprite *sprite); void ProcessSpriteCopyRequests(void); -void RequestSpriteCopy(u8 *src, u8 *dest, u16 size); +void RequestSpriteCopy(const u8 *src, u8 *dest, u16 size); void FreeSpriteTiles(struct Sprite *sprite); void FreeSpritePalette(struct Sprite *sprite); void FreeSpriteOamMatrix(struct Sprite *sprite); @@ -249,4 +261,6 @@ void CopyToSprites(u8 *src); void CopyFromSprites(u8 *dest); u8 SpriteTileAllocBitmapOp(u16 bit, u8 op); +extern const union AffineAnimCmd *const gDummySpriteAffineAnimTable[]; + #endif // GUARD_SPRITE_H diff --git a/include/wallclock.h b/include/wallclock.h index c869e3941..794f456be 100644 --- a/include/wallclock.h +++ b/include/wallclock.h @@ -6,9 +6,4 @@ void CB2_StartWallClock(void); void CB2_ViewWallClock(void); -void sub_810B05C(struct Sprite *sprite); -void sub_810B0F4(struct Sprite *sprite); -void sub_810B18C(struct Sprite *sprite); -void sub_810B230(struct Sprite *sprite); - #endif // GUARD_WALLCLOCK_H |