More changes to support JoeyDev. All targets need updating before they'll work again.
This commit is contained in:
parent
6f88d4ae69
commit
b76e19467c
5 changed files with 77 additions and 61 deletions
|
@ -26,12 +26,16 @@
|
|||
#include "joey.h"
|
||||
|
||||
|
||||
extern jbool _jlIsRunning;
|
||||
extern jlMemoryBlockT _jlMemoryBlocks[JOEY_MEM_BLOCKS];
|
||||
extern long _jlTotalAllocations;
|
||||
extern long _jlTotalFrees;
|
||||
|
||||
|
||||
jbool jlUtilMustExit(void) {
|
||||
return _jlUtilMustExit(JOEY_DEV_HANDLE);
|
||||
}
|
||||
|
||||
|
||||
void jlUtilSay(char *format, ...) {
|
||||
va_list va;
|
||||
va_start(va, format);
|
||||
|
@ -40,19 +44,16 @@ void jlUtilSay(char *format, ...) {
|
|||
}
|
||||
|
||||
|
||||
void SetJLMustExitHelper(void) {
|
||||
printf("Setting Must Exit Flag!\n");
|
||||
_jlIsRunning = jfalse;
|
||||
}
|
||||
|
||||
|
||||
void main(void) {
|
||||
int i;
|
||||
|
||||
jPixBufStart();
|
||||
joeyMain();
|
||||
jPixBufStop();
|
||||
|
||||
if (!setjmp(_jlJumpBuffer)) {
|
||||
joeyMain();
|
||||
}
|
||||
|
||||
jPixBufStop();
|
||||
jlUtilDie("Clean Exit.");
|
||||
|
||||
if (_jlTotalAllocations > _jlTotalFrees) {
|
||||
|
|
|
@ -38,8 +38,8 @@ extern void _jlDisplayPresent(uint32_t handle, void *image); // void so we d
|
|||
extern jint16 _jlGameGetAxis(uint32_t handle, jbyte which);
|
||||
extern jbool _jlGameGetButton(uint32_t handle, jbyte which);
|
||||
extern jbool _jlKeyPressed(uint32_t handle);
|
||||
extern char _jlUtilMustExit(uint32_t handle);
|
||||
extern char _jlKeyRead(uint32_t handle);
|
||||
//extern jbool _jlUtilMustExit(uint32_t handle);
|
||||
extern void _jlUtilSay(uint32_t handle, char *format, va_list args);
|
||||
extern juint16 _jlUtilTimer(uint32_t handle);
|
||||
extern void _jlUtilTitleSet(uint32_t handle, char *title);
|
||||
|
@ -49,14 +49,12 @@ extern void _jlUtilTitleSet(uint32_t handle, char *title);
|
|||
#define jlGameGetButton(w) _jlGameGetButton(JOEY_DEV_HANDLE, w)
|
||||
#define jlKeyPressed() _jlKeyPressed(JOEY_DEV_HANDLE)
|
||||
#define jlKeyRead() _jlKeyRead(JOEY_DEV_HANDLE)
|
||||
//#define jlUtilMustExit() _jlUtilMustExit(JOEY_DEV_HANDLE)
|
||||
//#define jlUtilSay(m, ...) _jlUtilSay(JOEY_DEV_HANDLE, m, __VA_ARGS__)
|
||||
#define jlUtilTimer() _jlUtilTimer(JOEY_DEV_HANDLE)
|
||||
#define jlUtilTitleSet(t) _jlUtilTitleSet(JOEY_DEV_HANDLE, t)
|
||||
|
||||
void jlUtilSay(char *format, ...);
|
||||
|
||||
void SetJLMustExitHelper(void);
|
||||
jbool jlUtilMustExit(void);
|
||||
void jlUtilSay(char *format, ...);
|
||||
|
||||
|
||||
// TCC Standard Library Replacement
|
||||
|
|
|
@ -31,7 +31,8 @@
|
|||
#endif
|
||||
|
||||
|
||||
jlImgT *_jlBackingStore = NULL; // 4 bit representation
|
||||
jlImgT *_jlBackingStore = NULL; // 4 bit representation
|
||||
jbool _jlPixBufStarted = jfalse;
|
||||
|
||||
|
||||
void jlDrawBlit8x8(jlSurfaceT source, jint16 sx, jint16 sy, jint16 tx, jint16 ty) {
|
||||
|
@ -153,12 +154,12 @@ void jlDrawSurfaceSet(jlSurfaceT target) {
|
|||
}
|
||||
|
||||
|
||||
jbool _jlImgCreate(jlImgT **img) {
|
||||
jbool _jlImgCreate(jlImgT **img, jint16 line, char *file) {
|
||||
jlImgT *t = NULL;
|
||||
|
||||
// Are we loading into a new image?
|
||||
if (*img == NULL) {
|
||||
t = (jlImgT *)jlMalloc(sizeof(jlImgT));
|
||||
t = (jlImgT *)jlMallocEx(sizeof(jlImgT), line, file);
|
||||
if (t == NULL) {
|
||||
return jfalse;
|
||||
}
|
||||
|
@ -198,17 +199,27 @@ void jlPaletteSetFromImg(jlImgT *img) {
|
|||
|
||||
|
||||
void jPixBufStart(void) {
|
||||
// Create backing store
|
||||
jlImgCreate(_jlBackingStore);
|
||||
jlPaletteDefault();
|
||||
jlDrawSurfaceSet(JOEY_DISPLAY);
|
||||
jlDrawColorSet(0);
|
||||
jlDrawClear();
|
||||
jlDrawColorSet(15);
|
||||
jlDisplayPresent();
|
||||
if (!_jlPixBufStarted) {
|
||||
// Create backing store
|
||||
jlImgCreate(_jlBackingStore);
|
||||
jlPaletteDefault();
|
||||
jlDrawSurfaceSet(JOEY_DISPLAY);
|
||||
jlDrawColorSet(0);
|
||||
jlDrawClear();
|
||||
jlDrawColorSet(15);
|
||||
jlDisplayPresent();
|
||||
_jlPixBufStarted = jtrue;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
void jPixBufStop(void) {
|
||||
jlImgFree(_jlBackingStore);
|
||||
if (_jlPixBufStarted) {
|
||||
//***TODO*** For some reason, jlImgFree is NOT setting _jlBackingStore to NULL. BAD.
|
||||
//printf("Calling jlImgFree on %p\n", _jlBackingStore);
|
||||
jlImgFree(_jlBackingStore);
|
||||
//printf("Back from jlImgFree\n");
|
||||
_jlPixBufStarted = jfalse;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -76,6 +76,7 @@ jbyte _jlDrawColor = 15; // Color in lower nibble only
|
|||
jbyte _jlDrawColorNibbles = (15 << 4) + 15; // Color in both nibbles
|
||||
jbyte _jlBorderColor = 0;
|
||||
char _jlTempString[1024]; // Used internally for pathname operations
|
||||
jmp_buf _jlJumpBuffer;
|
||||
|
||||
#ifndef JL_HAS_UTILMUSTEXIT
|
||||
jbool _jlIsRunning = jtrue;
|
||||
|
@ -122,7 +123,6 @@ void _jlFree(void **pointer) {
|
|||
if (i >= JOEY_MEM_BLOCKS) jlUtilDie("Block not found in jlFree()!");
|
||||
|
||||
free(*pointer);
|
||||
*pointer = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -611,11 +611,11 @@ jbool jlGameGetButton(jbyte which) {
|
|||
|
||||
|
||||
#ifndef JL_HAS_IMGCOPY
|
||||
jbool _jlImgCopy(jlImgT *source, jlImgT **target) {
|
||||
jbool _jlImgCopy(jlImgT *source, jlImgT **target, jint16 line, char *file) {
|
||||
jlImgT *t = NULL;
|
||||
// Are we copying into a new image?
|
||||
if (*target == NULL) {
|
||||
t = (jlImgT *)jlMalloc(sizeof(jlImgT));
|
||||
t = (jlImgT *)jlMallocEx(sizeof(jlImgT), line, file);
|
||||
if (t == NULL) {
|
||||
return jfalse;
|
||||
}
|
||||
|
@ -628,8 +628,10 @@ jbool _jlImgCopy(jlImgT *source, jlImgT **target) {
|
|||
|
||||
|
||||
#ifndef JL_HAS_IMGCREATE
|
||||
jbool _jlImgCreate(jlImgT **img) {
|
||||
jbool _jlImgCreate(jlImgT **img, jint16 line, char *file) {
|
||||
(void)img;
|
||||
(void)line;
|
||||
(void)file;
|
||||
return jfalse;
|
||||
}
|
||||
#endif
|
||||
|
@ -652,14 +654,14 @@ void jlImgFree(jlImgT *img) {
|
|||
|
||||
|
||||
#ifndef JL_HAS_IMGLOAD
|
||||
jbool _jlImgLoad(jlImgT **img, char *filename) {
|
||||
jbool _jlImgLoad(jlImgT **img, char *filename, jint16 line, char *file) {
|
||||
jbool result = jfalse;
|
||||
jlImgT *s = NULL;
|
||||
FILE *f = NULL;
|
||||
|
||||
// Are we loading into a new image?
|
||||
if (*img == NULL) {
|
||||
s = (jlImgT *)jlMalloc(sizeof(jlImgT));
|
||||
s = (jlImgT *)jlMallocEx(sizeof(jlImgT), line, file);
|
||||
if (s == NULL) {
|
||||
return result;
|
||||
}
|
||||
|
@ -878,14 +880,14 @@ void jlStnFree(jlStnT *stn) {
|
|||
|
||||
|
||||
#ifndef JL_HAS_STNLOAD
|
||||
jbool _jlStnLoad(jlStnT **stn, char *filename) {
|
||||
jbool _jlStnLoad(jlStnT **stn, char *filename, jint16 line, char *file) {
|
||||
jbool result = jfalse;
|
||||
jlStnT *s = NULL;
|
||||
FILE *f = NULL;
|
||||
|
||||
// Are we loading into a new stencil?
|
||||
if (*stn == NULL) {
|
||||
s = (jlStnT *)jlMalloc(sizeof(jlStnT));
|
||||
s = (jlStnT *)jlMallocEx(sizeof(jlStnT), line, file);
|
||||
if (s == NULL) {
|
||||
return result;
|
||||
}
|
||||
|
@ -938,15 +940,13 @@ void jlUtilDie(const char *why, ...) {
|
|||
}
|
||||
jlUtilSay("");
|
||||
jlUtilSay("%s", msg);
|
||||
}
|
||||
|
||||
#ifdef JOEY_TOOLS
|
||||
#ifndef JL_HAS_UTILMUSTEXIT
|
||||
_jlIsRunning = jfalse;
|
||||
#endif
|
||||
#else
|
||||
exit(0);
|
||||
_jlIsRunning = jfalse;
|
||||
#endif
|
||||
|
||||
longjmp(_jlJumpBuffer, 1);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -1009,11 +1009,15 @@ jbool jlUtilInputRead(jbyte *key) {
|
|||
|
||||
// Primary
|
||||
case 13:
|
||||
case 'z':
|
||||
case 'Z':
|
||||
*key = JOEY_INPUT_PRIMARY;
|
||||
break;
|
||||
|
||||
// Secondary
|
||||
case 27:
|
||||
case 'x':
|
||||
case 'X':
|
||||
*key = JOEY_INPUT_SECONDARY;
|
||||
break;
|
||||
}
|
||||
|
@ -1077,8 +1081,6 @@ char *jlUtilMakePathname(char *filename, char *extension) {
|
|||
strcat(_jlTempString, extension);
|
||||
}
|
||||
|
||||
printf("%s\n", _jlTempString);
|
||||
|
||||
return _jlTempString;
|
||||
}
|
||||
#endif
|
||||
|
@ -1189,9 +1191,9 @@ void *_jlUtilStackPop(jlStackT **stack) {
|
|||
|
||||
|
||||
#ifndef JL_HAS_UTILSTACKPUSH
|
||||
void _jlUtilStackPush(jlStackT **stack, void *data) {
|
||||
void _jlUtilStackPush(jlStackT **stack, void *data, jint16 line, char *file) {
|
||||
jlStackT *s = NULL;
|
||||
s = (jlStackT *)jlMalloc(sizeof(jlStackT));
|
||||
s = (jlStackT *)jlMallocEx(sizeof(jlStackT), line, file);
|
||||
s->previous = *stack;
|
||||
s->data = data;
|
||||
*stack = s;
|
||||
|
@ -1353,7 +1355,7 @@ void jlVecFree(jlVecT *vec) {
|
|||
|
||||
|
||||
#ifndef JL_HAS_VECLOAD
|
||||
jbool _jlVecLoad(jlVecT **vec, char *filename) {
|
||||
jbool _jlVecLoad(jlVecT **vec, char *filename, jint16 line, char *file) {
|
||||
jbool result = jfalse;
|
||||
jlVecT *v = NULL;
|
||||
FILE *f = NULL;
|
||||
|
@ -1363,7 +1365,7 @@ jbool _jlVecLoad(jlVecT **vec, char *filename) {
|
|||
if (*vec != NULL) {
|
||||
jlVecFree(*vec);
|
||||
}
|
||||
v = (jlVecT *)jlMalloc(sizeof(jlVecT));
|
||||
v = (jlVecT *)jlMallocEx(sizeof(jlVecT), line, file);
|
||||
if (v == NULL) {
|
||||
return result;
|
||||
}
|
||||
|
|
|
@ -32,6 +32,7 @@ extern "C" {
|
|||
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <setjmp.h>
|
||||
|
||||
|
||||
typedef unsigned char jbool;
|
||||
|
@ -266,6 +267,7 @@ extern jbyte _jlDrawColor;
|
|||
extern jbyte _jlDrawColorNibbles;
|
||||
extern jbyte _jlBorderColor;
|
||||
extern char _jlTempString[1024];
|
||||
extern jmp_buf _jlJumpBuffer;
|
||||
|
||||
|
||||
enum _jlBorderColorsE {
|
||||
|
@ -343,10 +345,11 @@ typedef struct {
|
|||
jint16 line;
|
||||
} jlMemoryBlockT;
|
||||
|
||||
#define jlFree(p) _jlFree((void **)&(p))
|
||||
#define jlFree(p) _jlFree((void **)&(p)); p = 0
|
||||
void _jlFree(void **pointer);
|
||||
|
||||
#define jlMalloc(s) _jlMalloc(s, __LINE__, __FILE__)
|
||||
#define jlMalloc(s) _jlMalloc(s, __LINE__, (char *)__FILE__)
|
||||
#define jlMallocEx(s, l, f) _jlMalloc(s, l, (char *)f)
|
||||
void *_jlMalloc(size_t size, jint16 line, char *file);
|
||||
|
||||
#define jlRealloc(p, s) _jlRealloc(p, s)
|
||||
|
@ -354,7 +357,7 @@ void *_jlRealloc(void *pointer, size_t size);
|
|||
|
||||
#else
|
||||
|
||||
#define jlFree free
|
||||
#define jlFree(p) free(p); p = 0
|
||||
#define jlMalloc malloc
|
||||
|
||||
#endif
|
||||
|
@ -384,14 +387,14 @@ void jlDrawSurfaceSet(jlSurfaceT target);
|
|||
jint16 jlGameGetAxis(jbyte which);
|
||||
jbool jlGameGetButton(jbyte which);
|
||||
|
||||
#define jlImgCopy(source, target) _jlImgCopy(source, (jlImgT **)&(target)) // Syntatic Sugar
|
||||
jbool _jlImgCopy(jlImgT *source, jlImgT **target);
|
||||
#define jlImgCreate(img) _jlImgCreate((jlImgT **)&(img)) // Syntatic Sugar
|
||||
jbool _jlImgCreate(jlImgT **img);
|
||||
#define jlImgCopy(source, target) _jlImgCopy(source, (jlImgT **)&(target), __LINE__, (char *)__FILE__) // Syntatic Sugar
|
||||
jbool _jlImgCopy(jlImgT *source, jlImgT **target, jint16 line, char *file);
|
||||
#define jlImgCreate(img) _jlImgCreate((jlImgT **)&(img), __LINE__, (char *)__FILE__) // Syntatic Sugar
|
||||
jbool _jlImgCreate(jlImgT **img, jint16 line, char *file);
|
||||
void jlImgDisplay(jlImgT *img);
|
||||
void jlImgFree(jlImgT *img);
|
||||
#define jlImgLoad(img, filename) _jlImgLoad((jlImgT **)&(img), filename) // Syntatic Sugar
|
||||
jbool _jlImgLoad(jlImgT **img, char *filename);
|
||||
#define jlImgLoad(img, filename) _jlImgLoad((jlImgT **)&(img), filename, __LINE__, (char *)__FILE__) // Syntatic Sugar
|
||||
jbool _jlImgLoad(jlImgT **img, char *filename, jint16 line, char *file);
|
||||
#define jlImgSave(img, filename) _jlImgSave(img, filename) // Needed so we can redefined it for JoeyDev
|
||||
jbool _jlImgSave(jlImgT *img, char *filename);
|
||||
#define jlImgSurfaceGet(img) ((jlSurfaceT)img->pixels)
|
||||
|
@ -422,8 +425,8 @@ void jlSoundModStop(void);
|
|||
void jlSoundPlay(jlSoundT *sound);
|
||||
|
||||
void jlStnFree(jlStnT *stn);
|
||||
#define jlStnLoad(stn, filename) _jlStnLoad((jlStnT **)&(stn), filename) // Syntatic Sugar
|
||||
jbool _jlStnLoad(jlStnT **stn, char *filename);
|
||||
#define jlStnLoad(stn, filename) _jlStnLoad((jlStnT **)&(stn), filename, __LINE__, (char *)__FILE__) // Syntatic Sugar
|
||||
jbool _jlStnLoad(jlStnT **stn, char *filename, jint16 line, char *file);
|
||||
|
||||
#define jlUtilByteSwap(twoBytes) ((juint16)((twoBytes) & 0xff) >> 8) | (juint16)((twoBytes) << 8)
|
||||
#ifdef JOEY_TOOLS
|
||||
|
@ -444,16 +447,16 @@ void jlUtilSay(char *format, ...);
|
|||
void jlUtilSleep(juint16 sixtieths);
|
||||
#define jlUtilStackPop(stack) _jlUtilStackPop((jlStackT **)&(stack)) // Syntatic Sugar
|
||||
void *_jlUtilStackPop(jlStackT **stack);
|
||||
#define jlUtilStackPush(stack, data) _jlUtilStackPush((jlStackT **)&(stack), data) // Syntatic Sugar
|
||||
void _jlUtilStackPush(jlStackT **stack, void *data);
|
||||
#define jlUtilStackPush(stack, data) _jlUtilStackPush((jlStackT **)&(stack), data, __LINE__, (char *)__FILE__) // Syntatic Sugar
|
||||
void _jlUtilStackPush(jlStackT **stack, void *data, jint16 line, char *file);
|
||||
juint16 jlUtilTimer(void);
|
||||
juint16 jlUtilTimeSpan(juint16 past, juint16 current);
|
||||
void jlUtilTitleSet(char *title);
|
||||
|
||||
void jlVecDisplay(jlVecT *vec, jint16 x, jint16 y);
|
||||
void jlVecFree(jlVecT *vec);
|
||||
#define jlVecLoad(vec, filename) _jlVecLoad((jlVecT **)&(vec), filename) // Syntatic Sugar
|
||||
jbool _jlVecLoad(jlVecT **vec, char *filename);
|
||||
#define jlVecLoad(vec, filename) _jlVecLoad((jlVecT **)&(vec), filename, __LINE__, (char *)__FILE__) // Syntatic Sugar
|
||||
jbool _jlVecLoad(jlVecT **vec, char *filename, jint16 line, char *file);
|
||||
|
||||
|
||||
// Must be provided by application
|
||||
|
@ -513,6 +516,7 @@ void _jlDebugBorder(jlBorderColorsE color);
|
|||
#define JL_HAS_GAMEGETBUTTON
|
||||
#define JL_HAS_KEYPRESSED
|
||||
#define JL_HAS_KEYREAD
|
||||
#define JL_HAS_UTILMUSTEXIT
|
||||
#define JL_HAS_UTILSAY
|
||||
#define JL_HAS_UTILTIMER
|
||||
#include "jDev.h"
|
||||
|
|
Loading…
Add table
Reference in a new issue