54 lines
1.1 KiB
C++
54 lines
1.1 KiB
C++
#ifndef BACKGROUND_H
|
|
#define BACKGROUND_H
|
|
|
|
#include <cstdint>
|
|
#include <stdlib.h>
|
|
|
|
#include <azur/gint/render.h>
|
|
|
|
#include "num/num.h"
|
|
#include <vector>
|
|
|
|
#include "player.h"
|
|
#include "vector2D.h"
|
|
|
|
struct Map {
|
|
/*width, height and the number of layer of the map*/
|
|
int w, h, nblayers;
|
|
|
|
/*the tileset to use*/
|
|
bopti_image_t *tileset;
|
|
int tileset_size;
|
|
|
|
/*list of all the tiles*/
|
|
short *layers[];
|
|
};
|
|
|
|
class Level {
|
|
public:
|
|
Level();
|
|
~Level();
|
|
|
|
void Update(float dt);
|
|
void Render(void);
|
|
|
|
void ChangeMap(int level);
|
|
void UpdateDataMap(void);
|
|
void ConvertTileToBorder(int16_t currentTile, libnum::num32 DeltaX,
|
|
libnum::num32 DeltaY);
|
|
void UpdateBorders(void);
|
|
|
|
bool CanGo(void);
|
|
|
|
private:
|
|
int GetTileBackground(uint16_t x, uint16_t y);
|
|
int GetTileForeground(uint16_t x, uint16_t y);
|
|
int GetTileBackgroundINT(uint8_t x, uint8_t y);
|
|
int GetTileForegroundINT(uint8_t x, uint8_t y);
|
|
|
|
Border *MakeBorder(libnum::num32 DX, libnum::num32 DY, libnum::num32 x1,
|
|
libnum::num32 y1, libnum::num32 x2, libnum::num32 y2);
|
|
};
|
|
|
|
#endif
|