mirror of
https://github.com/k4zmu2a/SpaceCadetPinball.git
synced 2024-11-17 23:20:19 +01:00
c63c6701ac
Refactored partman. Added sprite viewer.
65 lines
2.2 KiB
C++
65 lines
2.2 KiB
C++
#pragma once
|
|
#include "gdrv.h"
|
|
#include "maths.h"
|
|
#include "zdrv.h"
|
|
|
|
enum class VisualTypes : char
|
|
{
|
|
None = 0,
|
|
Sprite = 1,
|
|
Ball = 2
|
|
};
|
|
|
|
struct render_sprite_type_struct
|
|
{
|
|
rectangle_type BmpRect;
|
|
gdrv_bitmap8* Bmp;
|
|
zmap_header_type* ZMap;
|
|
char UnknownFlag;
|
|
VisualTypes VisualType;
|
|
int16_t Depth;
|
|
rectangle_type BmpRectCopy;
|
|
int ZMapOffestY;
|
|
int ZMapOffestX;
|
|
rectangle_type DirtyRect;
|
|
render_sprite_type_struct** SpriteArray;
|
|
int SpriteCount;
|
|
rectangle_type BoundingRect;
|
|
};
|
|
|
|
|
|
class render
|
|
{
|
|
public:
|
|
static int blit;
|
|
static int many_dirty, many_sprites, many_balls;
|
|
static render_sprite_type_struct **dirty_list, **sprite_list, **ball_list;
|
|
static zmap_header_type* background_zmap;
|
|
static int zmap_offset, zmap_offsetY, offset_x, offset_y;
|
|
static float zscaler, zmin, zmax;
|
|
static rectangle_type vscreen_rect;
|
|
static gdrv_bitmap8 vscreen, *background_bitmap, ball_bitmap[20];
|
|
static zmap_header_type zscreen;
|
|
|
|
static void init(gdrv_bitmap8* bmp, float zMin, float zScaler, int width, int height);
|
|
static void uninit();
|
|
static void update();
|
|
static void paint();
|
|
static void sprite_modified(render_sprite_type_struct* sprite);
|
|
static render_sprite_type_struct* create_sprite(VisualTypes visualType, gdrv_bitmap8* bmp,
|
|
zmap_header_type* zMap,
|
|
int xPosition, int yPosition, rectangle_type* rect);
|
|
static void remove_sprite(render_sprite_type_struct* sprite);
|
|
static void remove_ball(struct render_sprite_type_struct* ball);
|
|
static void sprite_set(render_sprite_type_struct* sprite, gdrv_bitmap8* bmp, zmap_header_type* zMap, int xPos,
|
|
int yPos);
|
|
static void sprite_set_bitmap(render_sprite_type_struct* sprite, gdrv_bitmap8* bmp);
|
|
static void set_background_zmap(struct zmap_header_type* zMap, int offsetX, int offsetY);
|
|
static void ball_set(render_sprite_type_struct* sprite, gdrv_bitmap8* bmp, float depth, int xPos, int yPos);
|
|
static void repaint(struct render_sprite_type_struct* sprite);
|
|
static void paint_balls();
|
|
static void unpaint_balls();
|
|
static void shift(int offsetX, int offsetY, int xSrc, int ySrc, int DestWidth, int DestHeight);
|
|
static void build_occlude_list();
|
|
static void SpriteViewer(bool* show);
|
|
};
|