#include <msx/hardware.h>
#include <types.h>
#include <stdint.h>
Go to the source code of this file.
|
void | hide_sprites_range (UINT8 from, UINT8 to) Z88DK_CALLEE PRESERVES_REGS(iyh |
|
uint8_t | move_metasprite_ex (const metasprite_t *metasprite, uint8_t base_tile, uint8_t base_prop, uint8_t base_sprite, uint8_t x, uint8_t y) |
|
uint8_t | move_metasprite (const metasprite_t *metasprite, uint8_t base_tile, uint8_t base_sprite, uint8_t x, uint8_t y) |
|
void | hide_metasprite (const metasprite_t *metasprite, uint8_t base_sprite) |
|
◆ metasprite_end
#define metasprite_end -128 |
◆ METASPR_ITEM
#define METASPR_ITEM |
( |
|
dy, |
|
|
|
dx, |
|
|
|
dt, |
|
|
|
a |
|
) |
| {(dy),(dx),(dt),(a)} |
◆ METASPR_TERM
◆ metasprite_t
Metasprite sub-item structure
- Parameters
-
dy | (int8_t) Y coordinate of the sprite relative to the metasprite origin (pivot) |
dx | (int8_t) X coordinate of the sprite relative to the metasprite origin (pivot) |
dtile | (uint8_t) Start tile relative to the metasprites own set of tiles |
props | (uint8_t) Property Flags |
Metasprites are built from multiple metasprite_t items (one for each sub-sprite) and a pool of tiles they reference. If a metasprite has multiple frames then each frame will be built from some number of metasprite_t items (which may vary based on how many sprites are required for that particular frame).
A metasprite frame is terminated with a {metasprite_end} entry.
◆ hide_sprites_range()
Hides all hardware sprites in range from <= X < to
- Parameters
-
from | start OAM index |
to | finish OAM index |
◆ move_metasprite_ex()
Moves metasprite to the absolute position x and y
- Parameters
-
metasprite | Pointer to the first struct of the metasprite (for the desired frame) |
base_tile | Number of the first tile where the metasprite's tiles start |
base_prop | Base sprite property flags (unused on this platform) |
base_sprite | Number of the first hardware sprite to be used by the metasprite |
x | Absolute x coordinate of the sprite |
y | Absolute y coordinate of the sprite |
Moves metasprite to the absolute position x and y (with no flip on the X or Y axis). Hardware sprites are allocated starting from base_sprite, using tiles starting from base_tile.
Sets:
- __current_metasprite = metasprite;
- __current_base_tile = base_tile;
- Returns
- Number of hardware sprites used to draw this metasprite
◆ move_metasprite()
◆ hide_metasprite()
Hides a metasprite from the screen
- Parameters
-
metasprite | Pointer to first struct of the desired metasprite frame |
base_sprite | Number of hardware sprite to start with |
Sets:
- __current_metasprite = metasprite;
◆ __current_metasprite
const void* __current_metasprite |
|
extern |
◆ __current_base_tile
◆ __render_shadow_OAM
◆ iyl