parent
38c59e416c
commit
b602007bc5
|
@ -12,32 +12,58 @@
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
// The maximum number of text objects that can exist at the same time.
|
||||||
|
#define TEXT_OBJECTS_MAX_COUNT (20)
|
||||||
|
|
||||||
|
typedef enum TextObjectFlags {
|
||||||
|
TEXT_OBJECT_MARKED_FOR_REMOVAL = 0x01,
|
||||||
|
TEXT_OBJECT_UNBOUNDED = 0x02,
|
||||||
|
} TextObjectFlags;
|
||||||
|
|
||||||
|
typedef struct TextObject {
|
||||||
|
int flags;
|
||||||
|
Object* owner;
|
||||||
|
unsigned int time;
|
||||||
|
int linesCount;
|
||||||
|
int sx;
|
||||||
|
int sy;
|
||||||
|
int tile;
|
||||||
|
int x;
|
||||||
|
int y;
|
||||||
|
int width;
|
||||||
|
int height;
|
||||||
|
unsigned char* data;
|
||||||
|
} TextObject;
|
||||||
|
|
||||||
|
static void textObjectsTicker();
|
||||||
|
static void textObjectFindPlacement(TextObject* textObject);
|
||||||
|
|
||||||
// 0x51D944
|
// 0x51D944
|
||||||
int gTextObjectsCount = 0;
|
static int gTextObjectsCount = 0;
|
||||||
|
|
||||||
// 0x51D948
|
// 0x51D948
|
||||||
unsigned int gTextObjectsBaseDelay = 3500;
|
static unsigned int gTextObjectsBaseDelay = 3500;
|
||||||
|
|
||||||
// 0x51D94C
|
// 0x51D94C
|
||||||
unsigned int gTextObjectsLineDelay = 1399;
|
static unsigned int gTextObjectsLineDelay = 1399;
|
||||||
|
|
||||||
// 0x6681C0
|
// 0x6681C0
|
||||||
TextObject* gTextObjects[TEXT_OBJECTS_MAX_COUNT];
|
static TextObject* gTextObjects[TEXT_OBJECTS_MAX_COUNT];
|
||||||
|
|
||||||
// 0x668210
|
// 0x668210
|
||||||
int gTextObjectsWindowWidth;
|
static int gTextObjectsWindowWidth;
|
||||||
|
|
||||||
// 0x668214
|
// 0x668214
|
||||||
int gTextObjectsWindowHeight;
|
static int gTextObjectsWindowHeight;
|
||||||
|
|
||||||
// 0x668218
|
// 0x668218
|
||||||
unsigned char* gTextObjectsWindowBuffer;
|
static unsigned char* gTextObjectsWindowBuffer;
|
||||||
|
|
||||||
// 0x66821C
|
// 0x66821C
|
||||||
bool gTextObjectsEnabled;
|
static bool gTextObjectsEnabled;
|
||||||
|
|
||||||
// 0x668220
|
// 0x668220
|
||||||
bool gTextObjectsInitialized;
|
static bool gTextObjectsInitialized;
|
||||||
|
|
||||||
// 0x4B0130
|
// 0x4B0130
|
||||||
int textObjectsInit(unsigned char* windowBuffer, int width, int height)
|
int textObjectsInit(unsigned char* windowBuffer, int width, int height)
|
||||||
|
@ -306,7 +332,7 @@ int textObjectsGetCount()
|
||||||
}
|
}
|
||||||
|
|
||||||
// 0x4B07F8
|
// 0x4B07F8
|
||||||
void textObjectsTicker()
|
static void textObjectsTicker()
|
||||||
{
|
{
|
||||||
if (!gTextObjectsEnabled) {
|
if (!gTextObjectsEnabled) {
|
||||||
return;
|
return;
|
||||||
|
@ -355,7 +381,7 @@ void textObjectsTicker()
|
||||||
// Finds best position for placing text object.
|
// Finds best position for placing text object.
|
||||||
//
|
//
|
||||||
// 0x4B0954
|
// 0x4B0954
|
||||||
void textObjectFindPlacement(TextObject* textObject)
|
static void textObjectFindPlacement(TextObject* textObject)
|
||||||
{
|
{
|
||||||
int tileScreenX;
|
int tileScreenX;
|
||||||
int tileScreenY;
|
int tileScreenY;
|
||||||
|
|
|
@ -4,40 +4,6 @@
|
||||||
#include "geometry.h"
|
#include "geometry.h"
|
||||||
#include "obj_types.h"
|
#include "obj_types.h"
|
||||||
|
|
||||||
// The maximum number of text objects that can exist at the same time.
|
|
||||||
#define TEXT_OBJECTS_MAX_COUNT (20)
|
|
||||||
|
|
||||||
typedef enum TextObjectFlags {
|
|
||||||
TEXT_OBJECT_MARKED_FOR_REMOVAL = 0x01,
|
|
||||||
TEXT_OBJECT_UNBOUNDED = 0x02,
|
|
||||||
} TextObjectFlags;
|
|
||||||
|
|
||||||
typedef struct TextObject {
|
|
||||||
int flags;
|
|
||||||
Object* owner;
|
|
||||||
unsigned int time;
|
|
||||||
int linesCount;
|
|
||||||
int sx;
|
|
||||||
int sy;
|
|
||||||
int tile;
|
|
||||||
int x;
|
|
||||||
int y;
|
|
||||||
int width;
|
|
||||||
int height;
|
|
||||||
unsigned char* data;
|
|
||||||
} TextObject;
|
|
||||||
|
|
||||||
extern int gTextObjectsCount;
|
|
||||||
extern unsigned int gTextObjectsBaseDelay;
|
|
||||||
extern unsigned int gTextObjectsLineDelay;
|
|
||||||
|
|
||||||
extern TextObject* gTextObjects[TEXT_OBJECTS_MAX_COUNT];
|
|
||||||
extern int gTextObjectsWindowWidth;
|
|
||||||
extern int gTextObjectsWindowHeight;
|
|
||||||
extern unsigned char* gTextObjectsWindowBuffer;
|
|
||||||
extern bool gTextObjectsEnabled;
|
|
||||||
extern bool gTextObjectsInitialized;
|
|
||||||
|
|
||||||
int textObjectsInit(unsigned char* windowBuffer, int width, int height);
|
int textObjectsInit(unsigned char* windowBuffer, int width, int height);
|
||||||
int textObjectsReset();
|
int textObjectsReset();
|
||||||
void textObjectsFree();
|
void textObjectsFree();
|
||||||
|
@ -48,8 +14,6 @@ void textObjectsSetLineDelay(double value);
|
||||||
int textObjectAdd(Object* object, char* string, int font, int color, int a5, Rect* rect);
|
int textObjectAdd(Object* object, char* string, int font, int color, int a5, Rect* rect);
|
||||||
void textObjectsRenderInRect(Rect* rect);
|
void textObjectsRenderInRect(Rect* rect);
|
||||||
int textObjectsGetCount();
|
int textObjectsGetCount();
|
||||||
void textObjectsTicker();
|
|
||||||
void textObjectFindPlacement(TextObject* textObject);
|
|
||||||
void textObjectsRemoveByOwner(Object* object);
|
void textObjectsRemoveByOwner(Object* object);
|
||||||
|
|
||||||
#endif /* TEXT_OBJECT_H */
|
#endif /* TEXT_OBJECT_H */
|
||||||
|
|
Loading…
Reference in New Issue