Merge remote-tracking branch 'upstream/miami' into miami

This commit is contained in:
Nikolay Korolev
2020-05-09 20:21:36 +03:00
40 changed files with 280 additions and 580 deletions

View File

@ -25,8 +25,6 @@
#include "Camera.h"
#include "DMAudio.h"
const float DefaultFOV = 70.0f; // beta: 80.0f
bool PrintDebugCode = false;
int16 DebugCamMode;

View File

@ -40,6 +40,8 @@ enum
#define DEFAULT_CAR_ZOOM_VALUE_2 (1.9f)
#define DEFAULT_CAR_ZOOM_VALUE_3 (3.9f)
const float DefaultFOV = 70.0f; // beta: 80.0f
class CCam
{
public:

View File

@ -67,8 +67,6 @@ CEventList::RegisterEvent(eEventType type, eEventEntity entityType, CEntity *ent
switch(entityType){
case EVENT_ENTITY_PED:
ref = CPools::GetPedRef((CPed*)ent);
if(ent->GetModelIndex() >= MI_GANG01 && ent->GetModelIndex() <= MI_CRIMINAL02)
copsDontCare = true;
break;
case EVENT_ENTITY_VEHICLE:
ref = CPools::GetVehicleRef((CVehicle*)ent);

View File

@ -861,15 +861,16 @@ CFileLoader::LoadPedObject(const char *line)
{
int id;
char model[24], txd[24];
char pedType[24], pedStats[24], animGroup[24];
char pedType[24], pedStats[24], animGroup[24], animFile[16];
int carsCanDrive;
CPedModelInfo *mi;
int animGroupId;
int radio1, radio2;
if(sscanf(line, "%d %s %s %s %s %s %x",
sscanf(line, "%d %s %s %s %s %s %x %s %d %d",
&id, model, txd,
pedType, pedStats, animGroup, &carsCanDrive) != 7)
return;
pedType, pedStats, animGroup, &carsCanDrive,
animFile, &radio1, &radio2);
mi = CModelInfo::AddPedModel(id);
mi->SetName(model);

View File

@ -901,6 +901,25 @@ CMenuManager::Draw()
bool foundTheHoveringItem = false;
wchar unicodeTemp[64];
#ifdef MENU_MAP
if (m_nCurrScreen == MENUPAGE_MAP) {
// Back button
wchar *backTx = TheText.Get("FEDS_TB");
CFont::SetDropShadowPosition(1);
CFont::SetDropColor(CRGBA(0, 0, 0, 255));
CFont::PrintString(MENU_X(60.0f), SCREEN_SCALE_FROM_BOTTOM(120.0f), backTx);
CFont::SetDropShadowPosition(0);
if (!CheckHover(MENU_X(30.0f), MENU_X(30.0f) + CFont::GetStringWidth(backTx), SCREEN_SCALE_FROM_BOTTOM(125.0f), SCREEN_SCALE_FROM_BOTTOM(105.0f))) {
m_nHoverOption = HOVEROPTION_NOT_HOVERING;
m_nCurrOption = m_nPrevOption = 0;
} else {
m_nHoverOption = HOVEROPTION_RANDOM_ITEM;
m_nCurrOption = m_nPrevOption = 1;
}
return;
}
#endif
for (int i = 0; i < NUM_MENUROWS; ++i) {
if (aScreens[m_nCurrScreen].m_aEntries[i].m_Action != MENUACTION_LABEL && aScreens[m_nCurrScreen].m_aEntries[i].m_EntryName[0] != '\0') {
wchar *rightText = nil;
@ -5381,13 +5400,13 @@ CMenuManager::PrintController(void)
#define ZOOM(x, y, in) \
do { \
if(fMapSize > SCREEN_WIDTH * 2 && in) \
if(fMapSize > SCREEN_HEIGHT * 3.0f && in) \
break; \
float z2 = in? 1.1f : 1.f/1.1f; \
fMapCenterX += (x - fMapCenterX) * (1.0f - z2); \
fMapCenterY += (y - fMapCenterY) * (1.0f - z2); \
\
if (fMapSize < SCREEN_WIDTH / 3 && !in) \
if (fMapSize < SCREEN_HEIGHT / 2 && !in) \
break; \
\
fMapSize *= z2; \
@ -5400,10 +5419,18 @@ CMenuManager::PrintMap(void)
bMenuMapActive = true;
CRadar::InitFrontEndMap();
// Just entered to map
if (!bMapLoaded) {
fMapCenterX = SCREEN_WIDTH / 2;
fMapCenterY = SCREEN_HEIGHT / 3;
fMapSize = SCREEN_HEIGHT / CDraw::GetAspectRatio();
fMapSize = SCREEN_HEIGHT * 2.0f;
fMapCenterX = 0.0f;
fMapCenterY = 0.0f;
CVector2D radarSpacePlayer;
CVector2D screenSpacePlayer;
CRadar::TransformRealWorldPointToRadarSpace(radarSpacePlayer, CVector2D(FindPlayerCoors()));
CRadar::TransformRadarPointToScreenSpace(screenSpacePlayer, radarSpacePlayer);
fMapCenterX = (-screenSpacePlayer.x) + SCREEN_WIDTH / 2;
fMapCenterY = (-screenSpacePlayer.y) + SCREEN_HEIGHT / 2;
bMapMouseShownOnce = false;
bMapLoaded = true;

View File

@ -459,6 +459,8 @@ const CMenuScreen aScreens[] = {
#ifdef MENU_MAP
// MENUPAGE_MAP = 59
{ "FEG_MAP", 1, MENUPAGE_NONE, MENUPAGE_NONE, 5, 2,
MENUACTION_UNK110, "", SAVESLOT_NONE, MENUPAGE_NONE, // to prevent cross/enter to go back
MENUACTION_CHANGEMENU, "FEDS_TB", SAVESLOT_NONE, MENUPAGE_NONE,
},
#endif
};

View File

@ -140,9 +140,9 @@ void ChangePlayerCheat()
do
{
do
modelId = CGeneral::GetRandomNumberInRange(0, MI_CAS_WOM+1);
modelId = CGeneral::GetRandomNumberInRange(0, MI_WFYG2+1);
while (!CModelInfo::GetModelInfo(modelId));
} while (modelId >= MI_SPECIAL01 && modelId <= MI_SPECIAL04 || modelId == MI_TAXI_D);
} while (modelId == MI_TAXI_D);
uint8 flags = CStreaming::ms_aInfoForModel[modelId].m_flags;
ped->DeleteRwObject();

View File

@ -4,7 +4,7 @@
#include "Lists.h"
#include "Treadable.h"
#include "Object.h"
#include "CutsceneHead.h"
#include "CutsceneObject.h"
#include "PlayerPed.h"
#include "Automobile.h"
#include "DummyPed.h"
@ -16,7 +16,7 @@ typedef CPool<CPed,CPlayerPed> CPedPool;
typedef CPool<CVehicle,CAutomobile> CVehiclePool;
typedef CPool<CBuilding> CBuildingPool;
typedef CPool<CTreadable> CTreadablePool;
typedef CPool<CObject, CCutsceneHead> CObjectPool;
typedef CPool<CObject, CCutsceneObject> CObjectPool;
typedef CPool<CDummy, CDummyPed> CDummyPool;
typedef CPool<cAudioScriptObject> CAudioScriptObjectPool;

View File

@ -1435,9 +1435,9 @@ CRadar::DrawYouAreHereSprite(float x, float y)
if (show) {
float left = x - SCREEN_SCALE_X(12.0f);
float top = y - SCREEN_SCALE_Y(2.0f);
float top = y;
float right = SCREEN_SCALE_X(12.0) + x;
float bottom = y - SCREEN_SCALE_Y(26.0f);
float bottom = y - SCREEN_SCALE_Y(24.0f);
CentreSprite.Draw(CRect(left, top, right, bottom), CRGBA(255, 255, 255, 255));
}
MapLegendList[MapLegendCounter++] = RADAR_SPRITE_CENTRE;

View File

@ -108,8 +108,8 @@ enum Config {
NUMPEDROUTES = 200,
NUMPHONES = 50,
NUMPEDGROUPS = 31,
NUMMODELSPERPEDGROUP = 8, // TODO(MIAMI): 16 once we have peds
NUMPEDGROUPS = 67,
NUMMODELSPERPEDGROUP = 16,
NUMSHOTINFOS = 100,
NUMROADBLOCKS = 300,