mirror of
https://github.com/afska/gba-link-connection.git
synced 2026-03-26 12:04:33 -05:00
91 lines
2.5 KiB
C
91 lines
2.5 KiB
C
// SPDX-License-Identifier: MIT
|
|
//
|
|
// Copyright (c) 2020 Antonio Niño Díaz
|
|
|
|
#ifndef OBJ_H__
|
|
#define OBJ_H__
|
|
|
|
#include "definitions.h"
|
|
|
|
typedef enum {
|
|
OBJ_16_COLORS,
|
|
OBJ_256_COLORS
|
|
} oam_color_mode;
|
|
|
|
typedef enum {
|
|
OBJ_MODE_NORMAL,
|
|
OBJ_MODE_TRANSPARENT,
|
|
OBJ_MODE_WINDOW
|
|
} oam_entry_mode;
|
|
|
|
typedef enum {
|
|
// Square
|
|
OBJ_SIZE_8x8,
|
|
OBJ_SIZE_16x16,
|
|
OBJ_SIZE_32x32,
|
|
OBJ_SIZE_64x64,
|
|
|
|
// Horizontal
|
|
OBJ_SIZE_16x8,
|
|
OBJ_SIZE_32x8,
|
|
OBJ_SIZE_32x16,
|
|
OBJ_SIZE_64x32,
|
|
|
|
// Vertical
|
|
OBJ_SIZE_8x16,
|
|
OBJ_SIZE_8x32,
|
|
OBJ_SIZE_16x32,
|
|
OBJ_SIZE_32x64,
|
|
|
|
OBJ_SIZE_NUMBER,
|
|
|
|
OBJ_SIZE_INVALID
|
|
|
|
} oam_entry_size;
|
|
|
|
// Regular objects functions
|
|
// -------------------------
|
|
|
|
EXPORT_API void OBJ_RegularInit(int index, int x, int y, oam_entry_size size,
|
|
oam_color_mode colors, int pal, int tile);
|
|
EXPORT_API void OBJ_RegularEnableSet(int index, int enable);
|
|
EXPORT_API void OBJ_RegularHFlipSet(int index, int enable);
|
|
EXPORT_API void OBJ_RegularVFlipSet(int index, int enable);
|
|
|
|
// Affine objects functions
|
|
// ------------------------
|
|
|
|
EXPORT_API void OBJ_AffineInit(int index, int x, int y, oam_entry_size size,
|
|
int matrix, oam_color_mode colors, int pal,
|
|
int tile, int doublesize);
|
|
EXPORT_API void OBJ_AffineMatrixSet(int index, int matrix_index);
|
|
EXPORT_API void OBJ_AffineDoubleSizeSet(int index, int enable);
|
|
|
|
// Common objects functions
|
|
// ------------------------
|
|
|
|
EXPORT_API void OBJ_PositionSet(int index, int x, int y);
|
|
EXPORT_API void OBJ_PositionGet(int index, int *x, int *y);
|
|
|
|
EXPORT_API void OBJ_ModeSet(int index, oam_entry_mode mode);
|
|
|
|
EXPORT_API void OBJ_GetShapeSize(oam_entry_size size,
|
|
uint16_t *attr0_shape, uint16_t *attr1_size);
|
|
EXPORT_API oam_entry_size OBJ_GetSizeFromDimensions(int width, int height);
|
|
EXPORT_API void OBJ_GetDimensionsFromSize(oam_entry_size size,
|
|
int *width, int *height);
|
|
EXPORT_API void OBJ_SizeSet(int index, oam_entry_size size);
|
|
|
|
// Enable or disable mosaic effect.
|
|
EXPORT_API void OBJ_MosaicSet(int index, int enable);
|
|
|
|
// Set palette of the object. Only for 16 color objects.
|
|
EXPORT_API void OBJ_Palette16Set(int index, int palette);
|
|
|
|
EXPORT_API void OBJ_PrioritySet(int index, int priority);
|
|
|
|
// This function automatically detects if the object is in 16 or 256 color mode
|
|
EXPORT_API void OBJ_TileSet(int index, int tile);
|
|
|
|
#endif // OBJ_H__
|