mirror of
https://github.com/halpz/re3.git
synced 2025-07-04 01:30:46 +00:00
Merge branch 'master' into world
# Conflicts: # src/core/World.cpp # src/core/World.h
This commit is contained in:
@ -29,6 +29,7 @@
|
||||
#include "SceneEdit.h"
|
||||
#include "Pools.h"
|
||||
#include "Debug.h"
|
||||
#include "GenericGameStorage.h"
|
||||
#include "Camera.h"
|
||||
|
||||
enum
|
||||
@ -2183,13 +2184,21 @@ CCamera::DrawBordersForWideScreen(void)
|
||||
SetMotionBlurAlpha(80);
|
||||
|
||||
CSprite2d::DrawRect(
|
||||
#ifdef FIX_BUGS
|
||||
CRect(0.0f, (SCREEN_HEIGHT/2) * m_ScreenReductionPercentage/100.0f - SCREEN_SCALE_Y(8.0f),
|
||||
#else
|
||||
CRect(0.0f, (SCREEN_HEIGHT/2) * m_ScreenReductionPercentage/100.0f - 8.0f,
|
||||
#endif
|
||||
SCREEN_WIDTH, 0.0f),
|
||||
CRGBA(0, 0, 0, 255));
|
||||
|
||||
CSprite2d::DrawRect(
|
||||
CRect(0.0f, SCREEN_HEIGHT,
|
||||
#ifdef FIX_BUGS
|
||||
SCREEN_WIDTH, SCREEN_HEIGHT - (SCREEN_HEIGHT/2) * m_ScreenReductionPercentage/100.0f - SCREEN_SCALE_Y(8.0f)),
|
||||
#else
|
||||
SCREEN_WIDTH, SCREEN_HEIGHT - (SCREEN_HEIGHT/2) * m_ScreenReductionPercentage/100.0f - 8.0f),
|
||||
#endif
|
||||
CRGBA(0, 0, 0, 255));
|
||||
}
|
||||
|
||||
|
@ -415,7 +415,7 @@ uint32 unknown; // some counter having to do with music
|
||||
|
||||
float CamFrontXNorm;
|
||||
float CamFrontYNorm;
|
||||
#if 0 // TODO: FIX_BUGS once GenericLoad is done
|
||||
#ifdef FIX_BUGS
|
||||
int32 CarZoomIndicator;
|
||||
#else
|
||||
float CarZoomIndicator;
|
||||
@ -455,7 +455,7 @@ uint32 unknown; // some counter having to do with music
|
||||
float m_ScreenReductionSpeed;
|
||||
float m_AlphaForPlayerAnim1rstPerson;
|
||||
float Orientation;
|
||||
#if 0 // TODO: FIX_BUGS once GenericLoad is done
|
||||
#ifdef FIX_BUGS
|
||||
int32 PedZoomIndicator;
|
||||
#else
|
||||
float PedZoomIndicator;
|
||||
|
@ -31,8 +31,8 @@ enum Direction
|
||||
DIR_Z_NEG,
|
||||
};
|
||||
|
||||
eLevelName &CCollision::ms_collisionInMemory = *(eLevelName*)0x8F6250;
|
||||
CLinkList<CColModel*> &CCollision::ms_colModelCache = *(CLinkList<CColModel*>*)0x95CB58;
|
||||
eLevelName CCollision::ms_collisionInMemory;
|
||||
CLinkList<CColModel*> CCollision::ms_colModelCache;
|
||||
|
||||
void
|
||||
CCollision::Init(void)
|
||||
@ -1355,6 +1355,7 @@ CCollision::ProcessColModels(const CMatrix &matrixA, CColModel &modelA,
|
||||
modelB.triangles[aTriangleIndicesB[j]],
|
||||
modelB.trianglePlanes[aTriangleIndicesB[j]],
|
||||
spherepoints[numCollisions], coldist);
|
||||
|
||||
if(hasCollided)
|
||||
numCollisions++;
|
||||
}
|
||||
|
@ -3,6 +3,13 @@
|
||||
#include "templates.h"
|
||||
#include "Game.h" // for eLevelName
|
||||
|
||||
// If you spawn many tanks at once, you will see that collisions of two entity exceeds 32.
|
||||
#ifdef FIX_BUGS
|
||||
#define MAX_COLLISION_POINTS 64
|
||||
#else
|
||||
#define MAX_COLLISION_POINTS 32
|
||||
#endif
|
||||
|
||||
struct CColSphere
|
||||
{
|
||||
CVector center;
|
||||
@ -110,8 +117,8 @@ struct CColModel
|
||||
class CCollision
|
||||
{
|
||||
public:
|
||||
static eLevelName &ms_collisionInMemory;
|
||||
static CLinkList<CColModel*> &ms_colModelCache;
|
||||
static eLevelName ms_collisionInMemory;
|
||||
static CLinkList<CColModel*> ms_colModelCache;
|
||||
|
||||
static void Init(void);
|
||||
static void Shutdown(void);
|
||||
|
@ -82,34 +82,34 @@ int curBottomBarOption = -1;
|
||||
int hoveredBottomBarOption = -1;
|
||||
#endif
|
||||
|
||||
int32 CMenuManager::OS_Language = LANG_ENGLISH; // *(int32*)0x5F2F78;
|
||||
int8 CMenuManager::m_PrefsUseVibration; // = *(int8*)0x95CD92;
|
||||
int8 CMenuManager::m_DisplayControllerOnFoot; // = *(int8*)0x95CD8D;
|
||||
int8 CMenuManager::m_PrefsVsync = 1; // *(int8*)0x5F2E58;
|
||||
int8 CMenuManager::m_PrefsVsyncDisp = 1; // *(int8*)0x5F2E5C;
|
||||
int8 CMenuManager::m_PrefsFrameLimiter = 1; // *(int8*)0x5F2E60;
|
||||
int8 CMenuManager::m_PrefsShowSubtitles = 1; // *(int8*)0x5F2E54;
|
||||
int8 CMenuManager::m_PrefsSpeakers; // = *(int8*)0x95CD7E;
|
||||
int32 CMenuManager::m_ControlMethod; // = *(int32*)0x8F5F7C;
|
||||
int8 CMenuManager::m_PrefsDMA = 1; // *(int8*)0x5F2F74;
|
||||
int32 CMenuManager::m_PrefsLanguage; // = *(int32*)0x941238;
|
||||
int32 CMenuManager::OS_Language = LANG_ENGLISH;
|
||||
int8 CMenuManager::m_PrefsUseVibration;
|
||||
int8 CMenuManager::m_DisplayControllerOnFoot;
|
||||
int8 CMenuManager::m_PrefsVsync = 1;
|
||||
int8 CMenuManager::m_PrefsVsyncDisp = 1;
|
||||
int8 CMenuManager::m_PrefsFrameLimiter = 1;
|
||||
int8 CMenuManager::m_PrefsShowSubtitles = 1;
|
||||
int8 CMenuManager::m_PrefsSpeakers;
|
||||
int32 CMenuManager::m_ControlMethod;
|
||||
int8 CMenuManager::m_PrefsDMA = 1;
|
||||
int32 CMenuManager::m_PrefsLanguage;
|
||||
uint8 CMenuManager::m_PrefsStereoMono; // *(bool*)0x95CDB5; // unused except restore settings
|
||||
|
||||
bool CMenuManager::m_PrefsAllowNastyGame = true; // *(bool*)0x5F2E64;
|
||||
bool CMenuManager::m_bStartUpFrontEndRequested; // = *(bool*)0x95CCF4;
|
||||
bool CMenuManager::m_bShutDownFrontEndRequested; // = *(bool*)0x95CD6A;
|
||||
bool CMenuManager::m_PrefsAllowNastyGame = true;
|
||||
bool CMenuManager::m_bStartUpFrontEndRequested;
|
||||
bool CMenuManager::m_bShutDownFrontEndRequested;
|
||||
|
||||
int8 CMenuManager::m_PrefsUseWideScreen; // = *(int8*)0x95CD23;
|
||||
int8 CMenuManager::m_PrefsRadioStation; // = *(int8*)0x95CDA4;
|
||||
int32 CMenuManager::m_PrefsBrightness = 256; // = *(int32*)0x5F2E50;
|
||||
float CMenuManager::m_PrefsLOD; // = *(float*)0x8F42C4;
|
||||
int8 CMenuManager::m_bFrontEnd_ReloadObrTxtGxt; // = *(int8*)0x628CFC;
|
||||
int32 CMenuManager::m_PrefsMusicVolume = 102; // = *(int32*)0x5F2E4C;
|
||||
int32 CMenuManager::m_PrefsSfxVolume = 102; // = *(int32*)0x5F2E48;
|
||||
int8 CMenuManager::m_PrefsUseWideScreen;
|
||||
int8 CMenuManager::m_PrefsRadioStation;
|
||||
int32 CMenuManager::m_PrefsBrightness = 256;
|
||||
float CMenuManager::m_PrefsLOD = CRenderer::ms_lodDistScale;
|
||||
int8 CMenuManager::m_bFrontEnd_ReloadObrTxtGxt;
|
||||
int32 CMenuManager::m_PrefsMusicVolume = 102;
|
||||
int32 CMenuManager::m_PrefsSfxVolume = 102;
|
||||
|
||||
char CMenuManager::m_PrefsSkinFile[256] = "$$\"\""; // = (char*)0x5F2E74;
|
||||
char CMenuManager::m_PrefsSkinFile[256] = "$$\"\"";
|
||||
|
||||
int32 CMenuManager::m_KeyPressedCode = -1; // = *(int32*)0x5F2E70;
|
||||
int32 CMenuManager::m_KeyPressedCode = -1;
|
||||
|
||||
// Originally that was PS2 option color, they forget it here and used in PrintBriefs once(but didn't use the output anyway)
|
||||
#ifdef PS2_LIKE_MENU
|
||||
@ -119,29 +119,26 @@ const CRGBA TEXT_COLOR = CRGBA(235, 170, 50, 255); // PC briefs text color
|
||||
#endif
|
||||
|
||||
const float menuXYpadding = MENUACTION_POS_Y; // *(float*)0x5F355C; // not original name
|
||||
float MENU_TEXT_SIZE_X = SMALLTEXT_X_SCALE; //*(float*)0x5F2E40;
|
||||
float MENU_TEXT_SIZE_Y = SMALLTEXT_Y_SCALE; //*(float*)0x5F2E44;
|
||||
float MENU_TEXT_SIZE_X = SMALLTEXT_X_SCALE;
|
||||
float MENU_TEXT_SIZE_Y = SMALLTEXT_Y_SCALE;
|
||||
|
||||
bool holdingScrollBar; // *(bool*)0x628D59; // not original name
|
||||
int32 CMenuManager::m_SelectedMap; // *(int32*)0x8E2880;
|
||||
int32 CMenuManager::m_SelectedGameType; // *(int32*)0x942F88;
|
||||
int32 CMenuManager::m_SelectedMap;
|
||||
int32 CMenuManager::m_SelectedGameType;
|
||||
|
||||
// Used in a hidden menu
|
||||
uint8 CMenuManager::m_PrefsPlayerRed = 255;
|
||||
uint8 CMenuManager::m_PrefsPlayerGreen = 128;
|
||||
uint8 CMenuManager::m_PrefsPlayerBlue; // why??
|
||||
|
||||
CMenuManager FrontEndMenuManager; // = *(CMenuManager*)0x8F59D8;
|
||||
CMenuManager FrontEndMenuManager;
|
||||
|
||||
// Move this somewhere else.
|
||||
float CRenderer::ms_lodDistScale = 1.2f; // *(float*)0x5F726C;
|
||||
|
||||
uint32 TimeToStopPadShaking; // = *(uint32*)0x628CF8;
|
||||
char *pEditString; // = *(char**)0x628D00;
|
||||
int32 *pControlEdit; // = *(int32**)0x628D08;
|
||||
bool DisplayComboButtonErrMsg; // = *(bool*)0x628D14;
|
||||
int32 MouseButtonJustClicked; // = *(int32*)0x628D0C;
|
||||
int32 JoyButtonJustClicked; // = *(int32*)0x628D10;
|
||||
uint32 TimeToStopPadShaking;
|
||||
char *pEditString;
|
||||
int32 *pControlEdit;
|
||||
bool DisplayComboButtonErrMsg;
|
||||
int32 MouseButtonJustClicked;
|
||||
int32 JoyButtonJustClicked;
|
||||
//int32 *pControlTemp = 0;
|
||||
|
||||
#ifndef MASTER
|
||||
@ -283,6 +280,12 @@ ScaleAndCenterX(float x)
|
||||
} while(0)
|
||||
#endif
|
||||
|
||||
#define PREPARE_MENU_HEADER \
|
||||
CFont::SetColor(CRGBA(0, 0, 0, FadeIn(255))); \
|
||||
CFont::SetRightJustifyOn(); \
|
||||
CFont::SetScale(MENU_X(MENUHEADER_WIDTH), MENU_Y(MENUHEADER_HEIGHT)); \
|
||||
CFont::SetFontStyle(FONT_HEADING);
|
||||
|
||||
#define ProcessSlider(value, increaseAction, decreaseAction, hoverStartX, hoverEndX) \
|
||||
do { \
|
||||
lastActiveBarX = DisplaySlider(SCREEN_STRETCH_FROM_RIGHT(MENUSLIDER_X + columnWidth), MENU_Y(bitAboveNextItemY), MENU_Y(smallestSliderBar), MENU_Y(usableLineHeight), MENU_X(MENUSLIDER_UNK), value); \
|
||||
@ -447,8 +450,8 @@ CMenuManager::CheckCodesForControls(int typeOfControl)
|
||||
if (typeOfControl == KEYBOARD) {
|
||||
if (*pControlEdit == rsESC) {
|
||||
escPressed = true;
|
||||
} else if (*pControlEdit > rsF3 && *pControlEdit != rsF9 && *pControlEdit != rsLWIN &&
|
||||
*pControlEdit != rsRWIN && *pControlEdit != rsRALT) {
|
||||
} else if (*pControlEdit != rsF1 && *pControlEdit != rsF2 && *pControlEdit != rsF3 && *pControlEdit != rsF9 &&
|
||||
*pControlEdit != rsLWIN && *pControlEdit != rsRWIN && *pControlEdit != rsRALT) {
|
||||
typeToSave = KEYBOARD;
|
||||
if (ControlsManager.GetControllerKeyAssociatedWithAction(action, KEYBOARD) != rsNULL &&
|
||||
*pControlEdit != ControlsManager.GetControllerKeyAssociatedWithAction(action, KEYBOARD)) {
|
||||
@ -465,7 +468,10 @@ CMenuManager::CheckCodesForControls(int typeOfControl)
|
||||
DisplayComboButtonErrMsg = true;
|
||||
}
|
||||
|
||||
ControlsManager.ClearSettingsAssociatedWithAction(action, typeToSave);
|
||||
#ifdef FIX_BUGS
|
||||
if(!escPressed && !invalidKey)
|
||||
#endif
|
||||
ControlsManager.ClearSettingsAssociatedWithAction(action, typeToSave);
|
||||
if (!DisplayComboButtonErrMsg && !escPressed && !invalidKey) {
|
||||
if (typeOfControl == KEYBOARD) {
|
||||
ControlsManager.DeleteMatchingActionInitiators(action, *pControlEdit, KEYBOARD);
|
||||
@ -670,6 +676,17 @@ CMenuManager::Draw()
|
||||
CFont::SetCentreOff();
|
||||
CFont::SetJustifyOn();
|
||||
CFont::SetBackGroundOnlyTextOn();
|
||||
#ifdef GTA3_1_1_PATCH
|
||||
CFont::SetColor(CRGBA(235, 170, 50, FadeIn(255)));
|
||||
CFont::SetRightJustifyOn();
|
||||
CFont::SetFontStyle(FONT_HEADING);
|
||||
CFont::SetScale(MENU_X(0.7f), MENU_Y(0.5f));
|
||||
CFont::SetWrapx(SCREEN_WIDTH);
|
||||
CFont::SetRightJustifyWrap(0.0f);
|
||||
strcpy(gString, "V1.1");
|
||||
AsciiToUnicode(gString, gUString);
|
||||
CFont::PrintString(SCREEN_WIDTH / 10, SCREEN_HEIGHT / 45, gUString);
|
||||
#endif
|
||||
CFont::SetWrapx(MENU_X_RIGHT_ALIGNED(MENU_X_MARGIN));
|
||||
CFont::SetRightJustifyWrap(SCREEN_SCALE_X(MENUACTION_WIDTH));
|
||||
|
||||
@ -696,17 +713,9 @@ CMenuManager::Draw()
|
||||
#endif
|
||||
if (aScreens[m_nCurrScreen].m_ScreenName[0] != '\0') {
|
||||
|
||||
CFont::SetRightJustifyOn();
|
||||
CFont::SetFontStyle(FONT_HEADING);
|
||||
#ifdef PS2_LIKE_MENU
|
||||
CFont::SetColor(CRGBA(0, 0, 0, 255));
|
||||
CFont::SetScale(MENU_X(MENUHEADER_WIDTH), MENU_Y(1.3f));
|
||||
CFont::PrintString(MENU_X_RIGHT_ALIGNED(50.0f), SCREEN_SCALE_FROM_BOTTOM(75.0f), TheText.Get(aScreens[m_nCurrScreen].m_ScreenName));
|
||||
#else
|
||||
CFont::SetColor(CRGBA(0, 0, 0, FadeIn(255)));
|
||||
CFont::SetScale(MENU_X(MENUHEADER_WIDTH), MENU_Y(MENUHEADER_HEIGHT));
|
||||
PREPARE_MENU_HEADER
|
||||
CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(MENUHEADER_POS_X), SCREEN_SCALE_FROM_BOTTOM(MENUHEADER_POS_Y), TheText.Get(aScreens[m_nCurrScreen].m_ScreenName));
|
||||
#endif
|
||||
|
||||
// Weird place to put that.
|
||||
nextYToUse += 24.0f + 10.0f;
|
||||
}
|
||||
@ -1735,11 +1744,8 @@ CMenuManager::DrawControllerSetupScreen()
|
||||
CFont::SetWrapx(MENU_X_RIGHT_ALIGNED(MENU_X_MARGIN));
|
||||
CFont::SetRightJustifyWrap(SCREEN_SCALE_X(MENUACTION_WIDTH));
|
||||
|
||||
// Page header
|
||||
CFont::SetColor(CRGBA(0, 0, 0, FadeIn(255)));
|
||||
CFont::SetRightJustifyOn();
|
||||
CFont::SetScale(MENU_X(MENUHEADER_WIDTH), MENU_Y(MENUHEADER_HEIGHT));
|
||||
CFont::SetFontStyle(FONT_HEADING);
|
||||
PREPARE_MENU_HEADER
|
||||
|
||||
switch (m_ControlMethod) {
|
||||
case CONTROL_STANDARD:
|
||||
CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(MENUHEADER_POS_X), SCREEN_SCALE_FROM_BOTTOM(MENUHEADER_POS_Y),
|
||||
@ -2417,10 +2423,8 @@ CMenuManager::DrawPlayerSetupScreen()
|
||||
CFont::SetWrapx(MENU_X_RIGHT_ALIGNED(MENU_X_MARGIN));
|
||||
CFont::SetRightJustifyWrap(SCREEN_SCALE_X(MENUACTION_WIDTH));
|
||||
|
||||
CFont::SetColor(CRGBA(0, 0, 0, FadeIn(255)));
|
||||
CFont::SetScale(MENU_X(MENUHEADER_WIDTH), MENU_Y(MENUHEADER_HEIGHT));
|
||||
CFont::SetRightJustifyOn();
|
||||
CFont::SetFontStyle(FONT_HEADING);
|
||||
PREPARE_MENU_HEADER
|
||||
|
||||
CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(MENUHEADER_POS_X), SCREEN_SCALE_FROM_BOTTOM(MENUHEADER_POS_Y), TheText.Get("FET_PS"));
|
||||
|
||||
// lstrcpy's changed with strcpy
|
||||
@ -3314,10 +3318,7 @@ CMenuManager::PrintStats()
|
||||
|
||||
// ::Draw already does that.
|
||||
/*
|
||||
CFont::SetColor(CRGBA(0, 0, 0, FadeIn(255)));
|
||||
CFont::SetRightJustifyOn();
|
||||
CFont::SetFontStyle(FONT_HEADING);
|
||||
CFont::SetScale(MENU_X(MENUHEADER_WIDTH), MENU_Y(MENUHEADER_HEIGHT));
|
||||
PREPARE_MENU_HEADER
|
||||
CFont::PrintString(MENU_X_RIGHT_ALIGNED(MENUHEADER_POS_X), SCREEN_SCALE_FROM_BOTTOM(MENUHEADER_POS_Y), TheText.Get(aScreens[m_nCurrScreen].m_ScreenName));
|
||||
*/
|
||||
CFont::SetScale(MENU_X(MENU_TEXT_SIZE_X), MENU_Y(MENU_TEXT_SIZE_Y));
|
||||
@ -5245,6 +5246,7 @@ CMenuManager::PrintController(void)
|
||||
void
|
||||
CMenuManager::PrintMap(void)
|
||||
{
|
||||
CFont::SetJustifyOn();
|
||||
bMenuMapActive = true;
|
||||
CRadar::InitFrontEndMap();
|
||||
|
||||
|
@ -2,10 +2,16 @@
|
||||
|
||||
#include "Sprite2d.h"
|
||||
|
||||
#ifdef PS2_LIKE_MENU
|
||||
#define MENUHEADER_POS_X 50.0f
|
||||
#define MENUHEADER_POS_Y 75.0f
|
||||
#define MENUHEADER_HEIGHT 1.3f
|
||||
#else
|
||||
#define MENUHEADER_POS_X 35.0f
|
||||
#define MENUHEADER_POS_Y 93.0f
|
||||
#define MENUHEADER_WIDTH 0.84f
|
||||
#define MENUHEADER_HEIGHT 1.6f
|
||||
#endif
|
||||
#define MENUHEADER_WIDTH 0.84f
|
||||
|
||||
#define MENU_X_MARGIN 40.0f
|
||||
#define MENUACTION_POS_Y 60.0f
|
||||
|
@ -307,6 +307,7 @@ bool CGame::Initialise(const char* datFile)
|
||||
CDraw::SetFOV(120.0f);
|
||||
CDraw::ms_fLODDistance = 500.0f;
|
||||
LoadingScreen("Loading the Game", "Setup streaming", nil);
|
||||
#ifdef USE_TXD_CDIMAGE
|
||||
int txdHandle = CFileMgr::OpenFile("MODELS\\TXD.IMG", "r");
|
||||
if (txdHandle)
|
||||
CFileMgr::CloseFile(txdHandle);
|
||||
@ -321,6 +322,9 @@ bool CGame::Initialise(const char* datFile)
|
||||
CStreaming::Init();
|
||||
}
|
||||
}
|
||||
#else
|
||||
CStreaming::Init();
|
||||
#endif
|
||||
CStreaming::LoadInitialVehicles();
|
||||
CStreaming::LoadInitialPeds();
|
||||
CStreaming::RequestBigBuildings(LEVEL_NONE);
|
||||
@ -350,7 +354,7 @@ bool CGame::Initialise(const char* datFile)
|
||||
CAntennas::Init();
|
||||
CGlass::Init();
|
||||
gPhoneInfo.Initialise();
|
||||
CSceneEdit::Init();
|
||||
CSceneEdit::Initialise();
|
||||
LoadingScreen("Loading the Game", "Load scripts", nil);
|
||||
CTheScripts::Init();
|
||||
CGangs::Initialise();
|
||||
|
@ -90,6 +90,11 @@ public:
|
||||
return -Atan2(x / y, 1.0f);
|
||||
}
|
||||
}
|
||||
|
||||
static float GetAngleBetweenPoints(float x1, float y1, float x2, float y2)
|
||||
{
|
||||
return RADTODEG(GetRadianAngleBetweenPoints(x1, y1, x2, y2));
|
||||
}
|
||||
|
||||
// should return direction in 0-8 range. fits perfectly to peds' path directions.
|
||||
static int GetNodeHeadingFromVector(float x, float y)
|
||||
|
@ -7,8 +7,8 @@
|
||||
#include "main.h"
|
||||
#include "Population.h"
|
||||
|
||||
float &CIniFile::PedNumberMultiplier = *(float*)0x6182F4;
|
||||
float &CIniFile::CarNumberMultiplier = *(float*)0x6182F8;
|
||||
float CIniFile::PedNumberMultiplier = 1.0f;// = *(float*)0x6182F4;
|
||||
float CIniFile::CarNumberMultiplier = 1.0f;// = *(float*)0x6182F8;
|
||||
|
||||
void CIniFile::LoadIniFile()
|
||||
{
|
||||
|
@ -5,6 +5,6 @@ class CIniFile
|
||||
public:
|
||||
static void LoadIniFile();
|
||||
|
||||
static float& PedNumberMultiplier;
|
||||
static float& CarNumberMultiplier;
|
||||
static float PedNumberMultiplier;
|
||||
static float CarNumberMultiplier;
|
||||
};
|
||||
|
@ -1,20 +0,0 @@
|
||||
#include "common.h"
|
||||
#include "patcher.h"
|
||||
#include "Instance.h"
|
||||
|
||||
void
|
||||
CInstance::Shutdown()
|
||||
{
|
||||
GetMatrix().Detach();
|
||||
}
|
||||
|
||||
class CInstance_ : public CInstance
|
||||
{
|
||||
public:
|
||||
void dtor() { CInstance::~CInstance(); }
|
||||
};
|
||||
|
||||
STARTPATCHES
|
||||
InjectHook(0x50BE90, &CInstance_::dtor, PATCH_JUMP);
|
||||
InjectHook(0x50B850, &CInstance::Shutdown, PATCH_JUMP);
|
||||
ENDPATCHES
|
@ -1,14 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include "Placeable.h"
|
||||
|
||||
// unused
|
||||
|
||||
class CInstance : public CPlaceable
|
||||
{
|
||||
public:
|
||||
int m_modelIndex;
|
||||
public:
|
||||
~CInstance() = default;
|
||||
void Shutdown();
|
||||
};
|
@ -644,6 +644,8 @@ void CPad::AddToCheatString(char c)
|
||||
{
|
||||
for ( int32 i = ARRAY_SIZE(CheatString) - 2; i >= 0; i-- )
|
||||
CheatString[i + 1] = CheatString[i];
|
||||
|
||||
CheatString[0] = c;
|
||||
|
||||
#define _CHEATCMP(str) strncmp(str, CheatString, sizeof(str)-1)
|
||||
// "4414LDRULDRU" - R2 R2 L1 R2 LEFT DOWN RIGHT UP LEFT DOWN RIGHT UP
|
||||
|
@ -34,7 +34,7 @@ void
|
||||
CTempColModels::Initialise(void)
|
||||
{
|
||||
#define SET_COLMODEL_SPHERES(colmodel, sphrs)\
|
||||
colmodel.numSpheres = ARRAYSIZE(sphrs);\
|
||||
colmodel.numSpheres = ARRAY_SIZE(sphrs);\
|
||||
colmodel.spheres = sphrs;\
|
||||
colmodel.level = LEVEL_NONE;\
|
||||
colmodel.ownsCollisionVolumes = false;\
|
||||
@ -45,7 +45,7 @@ CTempColModels::Initialise(void)
|
||||
ms_colModelBBox.boundingBox.Set(CVector(-2.0f, -2.0f, -2.0f), CVector(2.0f, 2.0f, 2.0f), SURFACE_DEFAULT, 0);
|
||||
ms_colModelBBox.level = LEVEL_NONE;
|
||||
|
||||
for (i = 0; i < ARRAYSIZE(ms_colModelCutObj); i++) {
|
||||
for (i = 0; i < ARRAY_SIZE(ms_colModelCutObj); i++) {
|
||||
ms_colModelCutObj[i].boundingSphere.Set(2.0f, CVector(0.0f, 0.0f, 0.0f), SURFACE_DEFAULT, 0);
|
||||
ms_colModelCutObj[i].boundingBox.Set(CVector(-2.0f, -2.0f, -2.0f), CVector(2.0f, 2.0f, 2.0f), SURFACE_DEFAULT, 0);
|
||||
ms_colModelCutObj[i].level = LEVEL_NONE;
|
||||
@ -53,7 +53,7 @@ CTempColModels::Initialise(void)
|
||||
|
||||
// Ped Spheres
|
||||
|
||||
for (i = 0; i < ARRAYSIZE(s_aPedSpheres); i++)
|
||||
for (i = 0; i < ARRAY_SIZE(s_aPedSpheres); i++)
|
||||
s_aPedSpheres[i].radius = 0.35f;
|
||||
|
||||
s_aPedSpheres[0].center = CVector(0.0f, 0.0f, -0.25f);
|
||||
@ -61,9 +61,9 @@ CTempColModels::Initialise(void)
|
||||
s_aPedSpheres[2].center = CVector(0.0f, 0.0f, 0.55f);
|
||||
|
||||
#ifdef FIX_BUGS
|
||||
for (i = 0; i < ARRAYSIZE(s_aPedSpheres); i++) {
|
||||
for (i = 0; i < ARRAY_SIZE(s_aPedSpheres); i++) {
|
||||
#else
|
||||
for (i = 0; i < ARRAYSIZE(s_aPedGSpheres); i++) {
|
||||
for (i = 0; i < ARRAY_SIZE(s_aPedGSpheres); i++) {
|
||||
#endif
|
||||
s_aPedSpheres[i].surface = SURFACE_FLESH;
|
||||
s_aPedSpheres[i].piece = 0;
|
||||
@ -83,7 +83,7 @@ CTempColModels::Initialise(void)
|
||||
s_aPed2Spheres[1].center = CVector(0.0f, 0.0f, -0.9f);
|
||||
s_aPed2Spheres[2].center = CVector(0.0f, -0.35f, -0.9f);
|
||||
|
||||
for (i = 0; i < ARRAYSIZE(s_aPed2Spheres); i++) {
|
||||
for (i = 0; i < ARRAY_SIZE(s_aPed2Spheres); i++) {
|
||||
s_aPed2Spheres[i].surface = SURFACE_FLESH;
|
||||
s_aPed2Spheres[i].piece = 0;
|
||||
}
|
||||
@ -129,7 +129,7 @@ CTempColModels::Initialise(void)
|
||||
s_aDoorSpheres[1].center = CVector(0.0f, -0.95f, -0.35f);
|
||||
s_aDoorSpheres[2].center = CVector(0.0f, -0.6f, 0.25f);
|
||||
|
||||
for (i = 0; i < ARRAYSIZE(s_aDoorSpheres); i++) {
|
||||
for (i = 0; i < ARRAY_SIZE(s_aDoorSpheres); i++) {
|
||||
s_aDoorSpheres[i].surface = SURFACE_BILLBOARD;
|
||||
s_aDoorSpheres[i].piece = 0;
|
||||
}
|
||||
@ -141,7 +141,7 @@ CTempColModels::Initialise(void)
|
||||
|
||||
// Bumper Spheres
|
||||
|
||||
for (i = 0; i < ARRAYSIZE(s_aBumperSpheres); i++)
|
||||
for (i = 0; i < ARRAY_SIZE(s_aBumperSpheres); i++)
|
||||
s_aBumperSpheres[i].radius = 0.15f;
|
||||
|
||||
s_aBumperSpheres[0].center = CVector(0.85f, -0.05f, 0.0f);
|
||||
@ -149,7 +149,7 @@ CTempColModels::Initialise(void)
|
||||
s_aBumperSpheres[2].center = CVector(-0.4f, 0.05f, 0.0f);
|
||||
s_aBumperSpheres[3].center = CVector(-0.85f, -0.05f, 0.0f);
|
||||
|
||||
for (i = 0; i < ARRAYSIZE(s_aBumperSpheres); i++) {
|
||||
for (i = 0; i < ARRAY_SIZE(s_aBumperSpheres); i++) {
|
||||
s_aBumperSpheres[i].surface = SURFACE_BILLBOARD;
|
||||
s_aBumperSpheres[i].piece = 0;
|
||||
}
|
||||
@ -161,7 +161,7 @@ CTempColModels::Initialise(void)
|
||||
|
||||
// Panel Spheres
|
||||
|
||||
for (i = 0; i < ARRAYSIZE(s_aPanelSpheres); i++)
|
||||
for (i = 0; i < ARRAY_SIZE(s_aPanelSpheres); i++)
|
||||
s_aPanelSpheres[i].radius = 0.15f;
|
||||
|
||||
s_aPanelSpheres[0].center = CVector(0.15f, 0.45f, 0.0f);
|
||||
@ -169,7 +169,7 @@ CTempColModels::Initialise(void)
|
||||
s_aPanelSpheres[2].center = CVector(-0.15f, -0.45f, 0.0f);
|
||||
s_aPanelSpheres[3].center = CVector(-0.15f, 0.45f, 0.0f);
|
||||
|
||||
for (i = 0; i < ARRAYSIZE(s_aPanelSpheres); i++) {
|
||||
for (i = 0; i < ARRAY_SIZE(s_aPanelSpheres); i++) {
|
||||
s_aPanelSpheres[i].surface = SURFACE_BILLBOARD;
|
||||
s_aPanelSpheres[i].piece = 0;
|
||||
}
|
||||
@ -181,7 +181,7 @@ CTempColModels::Initialise(void)
|
||||
|
||||
// Bonnet Spheres
|
||||
|
||||
for (i = 0; i < ARRAYSIZE(s_aBonnetSpheres); i++)
|
||||
for (i = 0; i < ARRAY_SIZE(s_aBonnetSpheres); i++)
|
||||
s_aBonnetSpheres[i].radius = 0.2f;
|
||||
|
||||
s_aBonnetSpheres[0].center = CVector(-0.4f, 0.1f, 0.0f);
|
||||
@ -189,7 +189,7 @@ CTempColModels::Initialise(void)
|
||||
s_aBonnetSpheres[2].center = CVector(0.4f, 0.1f, 0.0f);
|
||||
s_aBonnetSpheres[3].center = CVector(0.4f, 0.9f, 0.0f);
|
||||
|
||||
for (i = 0; i < ARRAYSIZE(s_aBonnetSpheres); i++) {
|
||||
for (i = 0; i < ARRAY_SIZE(s_aBonnetSpheres); i++) {
|
||||
s_aBonnetSpheres[i].surface = SURFACE_BILLBOARD;
|
||||
s_aBonnetSpheres[i].piece = 0;
|
||||
}
|
||||
@ -201,7 +201,7 @@ CTempColModels::Initialise(void)
|
||||
|
||||
// Boot Spheres
|
||||
|
||||
for (i = 0; i < ARRAYSIZE(s_aBootSpheres); i++)
|
||||
for (i = 0; i < ARRAY_SIZE(s_aBootSpheres); i++)
|
||||
s_aBootSpheres[i].radius = 0.2f;
|
||||
|
||||
s_aBootSpheres[0].center = CVector(-0.4f, -0.1f, 0.0f);
|
||||
@ -209,7 +209,7 @@ CTempColModels::Initialise(void)
|
||||
s_aBootSpheres[2].center = CVector(0.4f, -0.1f, 0.0f);
|
||||
s_aBootSpheres[3].center = CVector(0.4f, -0.6f, 0.0f);
|
||||
|
||||
for (i = 0; i < ARRAYSIZE(s_aBootSpheres); i++) {
|
||||
for (i = 0; i < ARRAY_SIZE(s_aBootSpheres); i++) {
|
||||
s_aBootSpheres[i].surface = SURFACE_BILLBOARD;
|
||||
s_aBootSpheres[i].piece = 0;
|
||||
}
|
||||
@ -228,9 +228,9 @@ CTempColModels::Initialise(void)
|
||||
s_aWheelSpheres[1].center = CVector(0.3f, 0.0f, 0.0f);
|
||||
|
||||
#ifdef FIX_BUGS
|
||||
for (i = 0; i < ARRAYSIZE(s_aWheelSpheres); i++) {
|
||||
for (i = 0; i < ARRAY_SIZE(s_aWheelSpheres); i++) {
|
||||
#else
|
||||
for (i = 0; i < ARRAYSIZE(s_aBootSpheres); i++) {
|
||||
for (i = 0; i < ARRAY_SIZE(s_aBootSpheres); i++) {
|
||||
#endif
|
||||
s_aWheelSpheres[i].surface = SURFACE_RUBBER29;
|
||||
s_aWheelSpheres[i].piece = 0;
|
||||
@ -250,9 +250,9 @@ CTempColModels::Initialise(void)
|
||||
s_aBodyPartSpheres1[1].center = CVector(0.8f, 0.0f, 0.0f);
|
||||
|
||||
#ifdef FIX_BUGS
|
||||
for (i = 0; i < ARRAYSIZE(s_aBodyPartSpheres1); i++) {
|
||||
for (i = 0; i < ARRAY_SIZE(s_aBodyPartSpheres1); i++) {
|
||||
#else
|
||||
for (i = 0; i < ARRAYSIZE(s_aBootSpheres); i++) {
|
||||
for (i = 0; i < ARRAY_SIZE(s_aBootSpheres); i++) {
|
||||
#endif
|
||||
s_aBodyPartSpheres1[i].surface = SURFACE_FLESH;
|
||||
s_aBodyPartSpheres1[i].piece = 0;
|
||||
@ -272,9 +272,9 @@ CTempColModels::Initialise(void)
|
||||
s_aBodyPartSpheres2[1].center = CVector(0.5f, 0.0f, 0.0f);
|
||||
|
||||
#ifdef FIX_BUGS
|
||||
for (i = 0; i < ARRAYSIZE(s_aBodyPartSpheres2); i++) {
|
||||
for (i = 0; i < ARRAY_SIZE(s_aBodyPartSpheres2); i++) {
|
||||
#else
|
||||
for (i = 0; i < ARRAYSIZE(s_aBootSpheres); i++) {
|
||||
for (i = 0; i < ARRAY_SIZE(s_aBootSpheres); i++) {
|
||||
#endif
|
||||
s_aBodyPartSpheres2[i].surface = SURFACE_FLESH;
|
||||
s_aBodyPartSpheres2[i].piece = 0;
|
||||
|
@ -29,7 +29,7 @@
|
||||
|
||||
#define OBJECT_REPOSITION_OFFSET_Z 0.2f
|
||||
|
||||
CColPoint *gaTempSphereColPoints = (CColPoint*)0x6E64C0; // [32]
|
||||
CColPoint gaTempSphereColPoints[MAX_COLLISION_POINTS];
|
||||
|
||||
CPtrList *CWorld::ms_bigBuildingsList = (CPtrList*)0x6FAB60;
|
||||
CPtrList &CWorld::ms_listMovingEntityPtrs = *(CPtrList*)0x8F433C;
|
||||
@ -37,7 +37,7 @@ CSector (*CWorld::ms_aSectors)[NUMSECTORS_X] = (CSector (*)[NUMSECTORS_Y])0x6656
|
||||
uint16 &CWorld::ms_nCurrentScanCode = *(uint16*)0x95CC64;
|
||||
|
||||
uint8 &CWorld::PlayerInFocus = *(uint8 *)0x95CD61;
|
||||
CPlayerInfo (&CWorld::Players)[NUMPLAYERS] = *(CPlayerInfo (*)[NUMPLAYERS])*(uintptr*)0x9412F0;
|
||||
CPlayerInfo CWorld::Players[NUMPLAYERS];
|
||||
bool &CWorld::bNoMoreCollisionTorque = *(bool*)0x95CDCC;
|
||||
CEntity *&CWorld::pIgnoreEntity = *(CEntity**)0x8F6494;
|
||||
bool &CWorld::bIncludeDeadPeds = *(bool*)0x95CD8F;
|
||||
@ -66,6 +66,7 @@ bool &CWorld::bIncludeCarTyres = *(bool*)0x95CDAA;
|
||||
//WRAPPER void CWorld::CallOffChaseForArea(float, float, float, float) { EAXJMP(0x4B5530); }
|
||||
WRAPPER void CWorld::TriggerExplosion(const CVector& position, float fRadius, float fPower, CEntity *pCreator, bool bProcessVehicleBombTimer) { EAXJMP(0x4B1140); }
|
||||
//WRAPPER void CWorld::SetPedsOnFire(float, float, float, float, CEntity*) { EAXJMP(0x4B3D30); }
|
||||
WRAPPER void CWorld::UseDetonator(CEntity *) { EAXJMP(0x4B4650); }
|
||||
|
||||
void
|
||||
CWorld::Initialise()
|
||||
@ -2035,6 +2036,7 @@ CWorld::Process(void)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
void
|
||||
CWorld::TriggerExplosion(const CVector& position, float fRadius, float fPower, CEntity* pCreator, bool bProcessVehicleBombTimer)
|
||||
@ -2048,15 +2050,14 @@ CWorld::TriggerExplosion(const CVector& position, float fRadius, float fPower, C
|
||||
for (int32 y = nStartY; y <= nEndY; y++) {
|
||||
for (int32 x = nStartX; x <= nEndX; x++) {
|
||||
CSector* pSector = CWorld::GetSector(x, y);
|
||||
CWorld::TriggerExplosionSectorList(pSector->m_lists[ENTITYLIST_VEHICLES], position, fRadius, fPower, pCreator, bDrecementBombTimer);
|
||||
CWorld::TriggerExplosionSectorList(pSector->m_lists[ENTITYLIST_PEDS], position, fRadius, fPower, pCreator, bDrecementBombTimer);
|
||||
CWorld::TriggerExplosionSectorList(pSector->m_lists[ENTITYLIST_OBJECTS], position, fRadius, fPower, pCreator, bDrecementBombTimer);
|
||||
CWorld::TriggerExplosionSectorList(pSector->m_lists[ENTITYLIST_VEHICLES], position, fRadius, fPower, pCreator, bProcessVehicleBombTimer);
|
||||
CWorld::TriggerExplosionSectorList(pSector->m_lists[ENTITYLIST_PEDS], position, fRadius, fPower, pCreator, bProcessVehicleBombTimer);
|
||||
CWorld::TriggerExplosionSectorList(pSector->m_lists[ENTITYLIST_OBJECTS], position, fRadius, fPower, pCreator, bProcessVehicleBombTimer);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
STARTPATCHES
|
||||
InjectHook(0x4AE930, CWorld::Add, PATCH_JUMP);
|
||||
InjectHook(0x4AE9D0, CWorld::Remove, PATCH_JUMP);
|
||||
|
@ -61,7 +61,7 @@ class CWorld
|
||||
|
||||
public:
|
||||
static uint8 &PlayerInFocus;
|
||||
static CPlayerInfo (&Players)[NUMPLAYERS];
|
||||
static CPlayerInfo Players[NUMPLAYERS];
|
||||
static CEntity *&pIgnoreEntity;
|
||||
static bool &bIncludeDeadPeds;
|
||||
static bool &bNoMoreCollisionTorque;
|
||||
@ -151,9 +151,10 @@ public:
|
||||
static void Process();
|
||||
static void TriggerExplosion(const CVector& position, float fRadius, float fPower, CEntity* pCreator, bool bProcessVehicleBombTimer);
|
||||
static void TriggerExplosionSectorList(CPtrList& list, const CVector& position, float fRadius, float fPower, CEntity* pCreator, bool bProcessVehicleBombTimer);
|
||||
static void UseDetonator(CEntity *);
|
||||
};
|
||||
|
||||
extern CColPoint *gaTempSphereColPoints;
|
||||
extern CColPoint gaTempSphereColPoints[MAX_COLLISION_POINTS];
|
||||
|
||||
class CPlayerPed;
|
||||
class CVehicle;
|
||||
|
@ -23,6 +23,15 @@
|
||||
#include <rwcore.h>
|
||||
#include <rpworld.h>
|
||||
|
||||
// gotta put this somewhere
|
||||
#ifdef LIBRW
|
||||
#define STREAMPOS(str) ((str)->tell())
|
||||
#define STREAMFILE(str) (((rw::StreamFile*)(str))->file)
|
||||
#else
|
||||
#define STREAMPOS(str) ((str)->Type.memory.position)
|
||||
#define STREAMFILE(str) ((str)->Type.file.fpFile)
|
||||
#endif
|
||||
|
||||
#define rwVENDORID_ROCKSTAR 0x0253F2
|
||||
|
||||
// Get rid of bullshit windows definitions, we're not running on an 8086
|
||||
@ -39,9 +48,6 @@
|
||||
#ifndef min
|
||||
#define min(a,b) ((a) < (b) ? (a) : (b))
|
||||
#endif
|
||||
#ifndef ARRAYSIZE
|
||||
#define ARRAYSIZE(a) (sizeof(a) / sizeof(*(a)))
|
||||
#endif
|
||||
|
||||
typedef uint8_t uint8;
|
||||
typedef int8_t int8;
|
||||
@ -55,7 +61,9 @@ typedef int64_t int64;
|
||||
// hardcode ucs-2
|
||||
typedef uint16_t wchar;
|
||||
|
||||
#ifndef nil
|
||||
#define nil nullptr
|
||||
#endif
|
||||
|
||||
#include "config.h"
|
||||
|
||||
|
@ -47,7 +47,8 @@ enum Config {
|
||||
NUM_PATHCONNECTIONS = 10260,
|
||||
|
||||
// Link list lengths
|
||||
// TODO: alpha list
|
||||
NUMALPHALIST = 20,
|
||||
NUMALPHAENTITYLIST = 150,
|
||||
NUMCOLCACHELINKS = 200,
|
||||
NUMREFERENCES = 800,
|
||||
|
||||
@ -189,6 +190,8 @@ enum Config {
|
||||
#define FIX_BUGS // fixes bugs that we've came across during reversing, TODO: use this more
|
||||
#define TOGGLEABLE_BETA_FEATURES // toggleable from debug menu. not too many things
|
||||
#define MORE_LANGUAGES // Add more translations to the game
|
||||
#define DEFAULT_NATIVE_RESOLUTION // Set default video mode to your native resolution (fixes Windows 10 launch)
|
||||
//#define USE_TXD_CDIMAGE // generate and load textures from txd.img
|
||||
|
||||
// Pad
|
||||
#define XINPUT
|
||||
|
@ -58,6 +58,7 @@
|
||||
#include "Console.h"
|
||||
#include "timebars.h"
|
||||
#include "GenericGameStorage.h"
|
||||
#include "SceneEdit.h"
|
||||
|
||||
GlobalScene &Scene = *(GlobalScene*)0x726768;
|
||||
|
||||
@ -239,8 +240,13 @@ DoFade(void)
|
||||
float y = SCREEN_HEIGHT/2 * TheCamera.m_ScreenReductionPercentage/100.0f;
|
||||
rect.left = 0.0f;
|
||||
rect.right = SCREEN_WIDTH;
|
||||
#ifdef FIX_BUGS
|
||||
rect.top = y - SCREEN_SCALE_Y(8.0f);
|
||||
rect.bottom = SCREEN_HEIGHT - y - SCREEN_SCALE_Y(8.0f);
|
||||
#else
|
||||
rect.top = y - 8.0f;
|
||||
rect.bottom = SCREEN_HEIGHT - y - 8.0f;
|
||||
#endif // FIX_BUGS
|
||||
}else{
|
||||
rect.left = 0.0f;
|
||||
rect.right = SCREEN_WIDTH;
|
||||
@ -690,14 +696,14 @@ DisplayGameDebugText()
|
||||
CFont::SetPropOn();
|
||||
CFont::SetBackgroundOff();
|
||||
CFont::SetFontStyle(FONT_BANK);
|
||||
CFont::SetScale(SCREEN_STRETCH_X(0.5f), SCREEN_STRETCH_Y(0.5f));
|
||||
CFont::SetScale(SCREEN_SCALE_X(0.5f), SCREEN_SCALE_Y(0.5f));
|
||||
CFont::SetCentreOff();
|
||||
CFont::SetRightJustifyOff();
|
||||
CFont::SetWrapx(SCREEN_WIDTH);
|
||||
CFont::SetJustifyOff();
|
||||
CFont::SetBackGroundOnlyTextOff();
|
||||
CFont::SetColor(CRGBA(255, 108, 0, 255));
|
||||
CFont::PrintString(10.0f, 10.0f, ver);
|
||||
CFont::PrintString(SCREEN_SCALE_X(10.0f), SCREEN_SCALE_Y(10.0f), ver);
|
||||
|
||||
FrameSamples++;
|
||||
FramesPerSecondCounter += 1000.0f / (CTimer::GetTimeStepNonClippedInSeconds() * 1000.0f);
|
||||
@ -748,6 +754,7 @@ DisplayGameDebugText()
|
||||
|
||||
AsciiToUnicode(str, ustr);
|
||||
|
||||
// Let's not scale those numbers, they look better that way :eyes:
|
||||
CFont::SetPropOff();
|
||||
CFont::SetBackgroundOff();
|
||||
CFont::SetScale(0.7f, 1.5f);
|
||||
@ -863,11 +870,9 @@ Render2dStuff(void)
|
||||
|
||||
MusicManager.DisplayRadioStationName();
|
||||
TheConsole.Display();
|
||||
/*
|
||||
if(CSceneEdit::m_bEditOn)
|
||||
CSceneEdit::Draw();
|
||||
else
|
||||
*/
|
||||
CHud::Draw();
|
||||
CUserDisplay::OnscnTimer.ProcessForDisplay();
|
||||
CMessages::Display();
|
||||
@ -1560,8 +1565,9 @@ void SystemInit()
|
||||
//
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef GTA_PS2_STUFF
|
||||
CPad::Initialise();
|
||||
#endif
|
||||
CPad::GetPad(0)->Mode = 0;
|
||||
|
||||
CGame::frenchGame = false;
|
||||
|
@ -16,11 +16,8 @@ extern char *gString;
|
||||
extern char *gString2;
|
||||
extern wchar *gUString;
|
||||
extern wchar *gUString2;
|
||||
extern bool &b_FoundRecentSavedGameWantToLoad;
|
||||
extern bool gbPrintShite;
|
||||
extern bool &gbModelViewer;
|
||||
extern bool &StillToFadeOut;
|
||||
extern bool &JustLoadedDontFadeInYet;
|
||||
|
||||
class CSprite2d;
|
||||
|
||||
|
@ -22,6 +22,8 @@
|
||||
#include "Console.h"
|
||||
#include "Debug.h"
|
||||
#include "Hud.h"
|
||||
#include "SceneEdit.h"
|
||||
#include "Pad.h"
|
||||
|
||||
#include <list>
|
||||
|
||||
@ -332,6 +334,7 @@ DebugMenuPopulate(void)
|
||||
DebugMenuAddCmd("Spawn", "Spawn Predator", [](){ SpawnCar(MI_PREDATOR); });
|
||||
|
||||
DebugMenuAddVarBool8("Debug", "Draw hud", (int8*)&CHud::m_Wants_To_Draw_Hud, nil);
|
||||
DebugMenuAddVarBool8("Debug", "Edit on", (int8*)&CSceneEdit::m_bEditOn, nil);
|
||||
DebugMenuAddVar("Debug", "Engine Status", &engineStatus, nil, 1, 0, 226, nil);
|
||||
DebugMenuAddCmd("Debug", "Set Engine Status", SetEngineStatus);
|
||||
DebugMenuAddCmd("Debug", "Fix Car", FixCar);
|
||||
|
Reference in New Issue
Block a user