mirror of
https://github.com/GTAmodding/re3.git
synced 2024-12-25 17:25:41 +00:00
commit
8703758a7b
4 changed files with 221 additions and 5 deletions
|
@ -1,12 +1,91 @@
|
||||||
|
#include "common.h"
|
||||||
#include "Debug.h"
|
#include "Debug.h"
|
||||||
|
#include "Font.h"
|
||||||
|
#include "main.h"
|
||||||
|
#include "Text.h"
|
||||||
|
|
||||||
int CDebug::ms_nCurrentTextLine;
|
bool gbDebugStuffInRelease = false;
|
||||||
|
|
||||||
void CDebug::DebugInitTextBuffer()
|
#define DEBUG_X_POS (300)
|
||||||
|
#define DEBUG_Y_POS (41)
|
||||||
|
#define DEBUG_LINE_HEIGHT (22)
|
||||||
|
|
||||||
|
int16 CDebug::ms_nCurrentTextLine;
|
||||||
|
char CDebug::ms_aTextBuffer[MAX_LINES][MAX_STR_LEN];
|
||||||
|
|
||||||
|
void
|
||||||
|
CDebug::DebugInitTextBuffer()
|
||||||
{
|
{
|
||||||
ms_nCurrentTextLine = 0;
|
ms_nCurrentTextLine = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CDebug::DebugDisplayTextBuffer()
|
void
|
||||||
|
CDebug::DebugAddText(const char *str)
|
||||||
{
|
{
|
||||||
|
int32 i = 0;
|
||||||
|
if (*str != '\0') {
|
||||||
|
while (i < MAX_STR_LEN) {
|
||||||
|
ms_aTextBuffer[ms_nCurrentTextLine][i++] = *(str++);
|
||||||
|
if (*str == '\0')
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ms_aTextBuffer[ms_nCurrentTextLine++][i] = '\0';
|
||||||
|
if (ms_nCurrentTextLine >= MAX_LINES)
|
||||||
|
ms_nCurrentTextLine = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
CDebug::DebugDisplayTextBuffer()
|
||||||
|
{
|
||||||
|
#ifndef MASTER
|
||||||
|
if (gbDebugStuffInRelease)
|
||||||
|
{
|
||||||
|
int32 i = 0;
|
||||||
|
int32 y = DEBUG_Y_POS;
|
||||||
|
#ifdef FIX_BUGS
|
||||||
|
CFont::SetPropOn();
|
||||||
|
CFont::SetBackgroundOff();
|
||||||
|
CFont::SetScale(1.0f, 1.0f);
|
||||||
|
CFont::SetCentreOff();
|
||||||
|
CFont::SetRightJustifyOff();
|
||||||
|
CFont::SetJustifyOn();
|
||||||
|
CFont::SetRightJustifyWrap(0.0f);
|
||||||
|
CFont::SetBackGroundOnlyTextOff();
|
||||||
|
CFont::SetFontStyle(FONT_BANK);
|
||||||
|
#else
|
||||||
|
// this is not even readable
|
||||||
|
CFont::SetPropOff();
|
||||||
|
CFont::SetBackgroundOff();
|
||||||
|
CFont::SetScale(1.0f, 1.0f);
|
||||||
|
CFont::SetCentreOff();
|
||||||
|
CFont::SetRightJustifyOn();
|
||||||
|
CFont::SetRightJustifyWrap(0.0f);
|
||||||
|
CFont::SetBackGroundOnlyTextOff();
|
||||||
|
CFont::SetFontStyle(FONT_BANK);
|
||||||
|
CFont::SetPropOff();
|
||||||
|
#endif
|
||||||
|
do {
|
||||||
|
char *line;
|
||||||
|
while (true) {
|
||||||
|
line = ms_aTextBuffer[(ms_nCurrentTextLine + i++) % MAX_LINES];
|
||||||
|
if (*line != '\0')
|
||||||
|
break;
|
||||||
|
y += DEBUG_LINE_HEIGHT;
|
||||||
|
if (i == MAX_LINES) {
|
||||||
|
CFont::DrawFonts();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
AsciiToUnicode(line, gUString);
|
||||||
|
CFont::SetColor(CRGBA(0, 0, 0, 255));
|
||||||
|
CFont::PrintString(DEBUG_X_POS, y-1, gUString);
|
||||||
|
CFont::SetColor(CRGBA(255, 128, 128, 255));
|
||||||
|
CFont::PrintString(DEBUG_X_POS+1, y, gUString);
|
||||||
|
y += DEBUG_LINE_HEIGHT;
|
||||||
|
} while (i != MAX_LINES);
|
||||||
|
CFont::DrawFonts();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,10 +2,19 @@
|
||||||
|
|
||||||
class CDebug
|
class CDebug
|
||||||
{
|
{
|
||||||
static int ms_nCurrentTextLine;
|
enum
|
||||||
|
{
|
||||||
|
MAX_LINES = 15,
|
||||||
|
MAX_STR_LEN = 80,
|
||||||
|
};
|
||||||
|
|
||||||
|
static int16 ms_nCurrentTextLine;
|
||||||
|
static char ms_aTextBuffer[MAX_LINES][MAX_STR_LEN];
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static void DebugInitTextBuffer();
|
static void DebugInitTextBuffer();
|
||||||
static void DebugDisplayTextBuffer();
|
static void DebugDisplayTextBuffer();
|
||||||
|
static void DebugAddText(const char *str);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
extern bool gbDebugStuffInRelease;
|
||||||
|
|
119
src/core/obrstr.cpp
Normal file
119
src/core/obrstr.cpp
Normal file
|
@ -0,0 +1,119 @@
|
||||||
|
#include "common.h"
|
||||||
|
#include "Debug.h"
|
||||||
|
#include "obrstr.h"
|
||||||
|
|
||||||
|
char obrstr[128];
|
||||||
|
char obrstr2[128];
|
||||||
|
|
||||||
|
void ObrInt(int32 n1)
|
||||||
|
{
|
||||||
|
IntToStr(n1, obrstr);
|
||||||
|
CDebug::DebugAddText(obrstr);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ObrInt2(int32 n1, int32 n2)
|
||||||
|
{
|
||||||
|
IntToStr(n1, obrstr);
|
||||||
|
strcat(obrstr, " ");
|
||||||
|
IntToStr(n2, obrstr2);
|
||||||
|
strcat(obrstr, obrstr2);
|
||||||
|
CDebug::DebugAddText(obrstr);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ObrInt3(int32 n1, int32 n2, int32 n3)
|
||||||
|
{
|
||||||
|
IntToStr(n1, obrstr);
|
||||||
|
strcat(obrstr, " ");
|
||||||
|
IntToStr(n2, obrstr2);
|
||||||
|
strcat(obrstr, obrstr2);
|
||||||
|
strcat(obrstr, " ");
|
||||||
|
IntToStr(n3, obrstr2);
|
||||||
|
strcat(obrstr, obrstr2);
|
||||||
|
CDebug::DebugAddText(obrstr);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ObrInt4(int32 n1, int32 n2, int32 n3, int32 n4)
|
||||||
|
{
|
||||||
|
IntToStr(n1, obrstr);
|
||||||
|
strcat(obrstr, " ");
|
||||||
|
IntToStr(n2, obrstr2);
|
||||||
|
strcat(obrstr, obrstr2);
|
||||||
|
strcat(obrstr, " ");
|
||||||
|
IntToStr(n3, obrstr2);
|
||||||
|
strcat(obrstr, obrstr2);
|
||||||
|
strcat(obrstr, " ");
|
||||||
|
IntToStr(n4, obrstr2);
|
||||||
|
strcat(obrstr, obrstr2);
|
||||||
|
CDebug::DebugAddText(obrstr);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ObrInt5(int32 n1, int32 n2, int32 n3, int32 n4, int32 n5)
|
||||||
|
{
|
||||||
|
IntToStr(n1, obrstr);
|
||||||
|
strcat(obrstr, " ");
|
||||||
|
IntToStr(n2, obrstr2);
|
||||||
|
strcat(obrstr, obrstr2);
|
||||||
|
strcat(obrstr, " ");
|
||||||
|
IntToStr(n3, obrstr2);
|
||||||
|
strcat(obrstr, obrstr2);
|
||||||
|
strcat(obrstr, " ");
|
||||||
|
IntToStr(n4, obrstr2);
|
||||||
|
strcat(obrstr, obrstr2);
|
||||||
|
strcat(obrstr, " ");
|
||||||
|
IntToStr(n5, obrstr2);
|
||||||
|
strcat(obrstr, obrstr2);
|
||||||
|
CDebug::DebugAddText(obrstr);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ObrInt6(int32 n1, int32 n2, int32 n3, int32 n4, int32 n5, int32 n6)
|
||||||
|
{
|
||||||
|
IntToStr(n1, obrstr);
|
||||||
|
strcat(obrstr, " ");
|
||||||
|
IntToStr(n2, obrstr2);
|
||||||
|
strcat(obrstr, obrstr2);
|
||||||
|
strcat(obrstr, " ");
|
||||||
|
IntToStr(n3, obrstr2);
|
||||||
|
strcat(obrstr, obrstr2);
|
||||||
|
strcat(obrstr, " ");
|
||||||
|
IntToStr(n4, obrstr2);
|
||||||
|
strcat(obrstr, obrstr2);
|
||||||
|
strcat(obrstr, " ");
|
||||||
|
IntToStr(n5, obrstr2);
|
||||||
|
strcat(obrstr, obrstr2);
|
||||||
|
strcat(obrstr, " ");
|
||||||
|
IntToStr(n6, obrstr2);
|
||||||
|
strcat(obrstr, obrstr2);
|
||||||
|
CDebug::DebugAddText(obrstr);
|
||||||
|
}
|
||||||
|
|
||||||
|
void IntToStr(int32 inNum, char *outStr)
|
||||||
|
{
|
||||||
|
bool isNeg = inNum < 0;
|
||||||
|
|
||||||
|
if (isNeg) {
|
||||||
|
inNum = -inNum;
|
||||||
|
*outStr = '-';
|
||||||
|
}
|
||||||
|
|
||||||
|
int16 digits = 1;
|
||||||
|
|
||||||
|
if (inNum > 9) {
|
||||||
|
int32 _inNum = inNum;
|
||||||
|
do {
|
||||||
|
digits++;
|
||||||
|
_inNum /= 10;
|
||||||
|
} while (_inNum > 9);
|
||||||
|
}
|
||||||
|
|
||||||
|
int32 strSize = digits;
|
||||||
|
if (isNeg)
|
||||||
|
strSize++;
|
||||||
|
|
||||||
|
char *pStr = &outStr[strSize];
|
||||||
|
int32 i = 0;
|
||||||
|
do {
|
||||||
|
*(pStr-- - 1) = (inNum % 10) + '0';
|
||||||
|
inNum /= 10;
|
||||||
|
} while (++i < strSize);
|
||||||
|
outStr[strSize] = '\0';
|
||||||
|
}
|
9
src/core/obrstr.h
Normal file
9
src/core/obrstr.h
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
void ObrInt(int32 n1);
|
||||||
|
void ObrInt2(int32 n1, int32 n2);
|
||||||
|
void ObrInt3(int32 n1, int32 n2, int32 n3);
|
||||||
|
void ObrInt4(int32 n1, int32 n2, int32 n3, int32 n4);
|
||||||
|
void ObrInt5(int32 n1, int32 n2, int32 n3, int32 n4, int32 n5);
|
||||||
|
void ObrInt6(int32 n1, int32 n2, int32 n3, int32 n4, int32 n5, int32 n6);
|
||||||
|
void IntToStr(int32 inNum, char *outStr);
|
Loading…
Reference in a new issue