mirror of
https://git.rip/DMCA_FUCKER/re3.git
synced 2024-12-23 12:00:01 +00:00
Merge remote-tracking branch 'upstream/lcs' into lcs
This commit is contained in:
commit
b32301592f
File diff suppressed because it is too large
Load diff
|
@ -29,6 +29,7 @@ enum AssocGroupId
|
|||
ASSOCGRP_SNIPER,
|
||||
ASSOCGRP_THROW,
|
||||
ASSOCGRP_FLAMETHROWER,
|
||||
ASSOCGRP_ROCKETLAUNCHER,
|
||||
ASSOCGRP_MEDIC,
|
||||
ASSOCGRP_SUNBATHE,
|
||||
ASSOCGRP_PLAYER_IDLE,
|
||||
|
@ -40,6 +41,7 @@ enum AssocGroupId
|
|||
ASSOCGRP_PLAYER1ARMED,
|
||||
ASSOCGRP_PLAYER2ARMED,
|
||||
ASSOCGRP_PLAYERBBBAT,
|
||||
ASSOCGRP_AICHAINSAW,
|
||||
ASSOCGRP_PLAYERCHAINSAW,
|
||||
ASSOCGRP_SHUFFLE,
|
||||
ASSOCGRP_OLD,
|
||||
|
@ -64,11 +66,33 @@ enum AssocGroupId
|
|||
ASSOCGRP_ROCKETBACK,
|
||||
ASSOCGRP_ROCKETLEFT,
|
||||
ASSOCGRP_ROCKETRIGHT,
|
||||
ASSOCGRP_CHAINSAWBACK,
|
||||
ASSOCGRP_CHAINSAWLEFT,
|
||||
ASSOCGRP_CHAINSAWRIGHT,
|
||||
#endif
|
||||
|
||||
ASSOCGRP_MPNOTE,
|
||||
ASSOCGRP_CSMISC,
|
||||
ASSOCGRP_DONH2,
|
||||
ASSOCGRP_DONH3,
|
||||
ASSOCGRP_JDT2,
|
||||
ASSOCGRP_JDT4,
|
||||
ASSOCGRP_JDT5,
|
||||
ASSOCGRP_JDT6,
|
||||
ASSOCGRP_MAR1,
|
||||
ASSOCGRP_MAR2,
|
||||
ASSOCGRP_MAR3,
|
||||
ASSOCGRP_SAL1,
|
||||
ASSOCGRP_SAL2,
|
||||
ASSOCGRP_SAL3,
|
||||
ASSOCGRP_SAL4,
|
||||
ASSOCGRP_SAL6,
|
||||
ASSOCGRP_SAL7,
|
||||
ASSOCGRP_VIC2,
|
||||
ASSOCGRP_VIC3,
|
||||
ASSOCGRP_VIC4,
|
||||
ASSOCGRP_VIC6,
|
||||
ASSOCGRP_TOURIST,
|
||||
ASSOCGRP_MAC2,
|
||||
ASSOCGRP_VIC7,
|
||||
|
||||
NUM_ANIM_ASSOC_GROUPS
|
||||
};
|
||||
|
||||
|
|
|
@ -40,32 +40,25 @@ enum AnimationId
|
|||
ANIM_HIT_BACK,
|
||||
ANIM_HIT_RIGHT,
|
||||
ANIM_FLOOR_HIT,
|
||||
ANIM_HIT_BODYBLOW,
|
||||
ANIM_HIT_CHEST,
|
||||
ANIM_HIT_HEAD,
|
||||
ANIM_HIT_WALK,
|
||||
ANIM_HIT_WALL,
|
||||
ANIM_FLOOR_HIT_F,
|
||||
ANIM_HIT_BEHIND,
|
||||
ANIM_FIGHT_IDLE,
|
||||
ANIM_FIGHT2_IDLE,
|
||||
ANIM_FIGHT_SH_F,
|
||||
ANIM_FIGHT_BODYBLOW,
|
||||
ANIM_FIGHT_HEAD,
|
||||
ANIM_FIGHT_KICK,
|
||||
ANIM_FIGHT_KNEE,
|
||||
ANIM_FIGHT_LHOOK,
|
||||
ANIM_FIGHT_PUNCH,
|
||||
ANIM_FIGHT_ROUNDHOUSE,
|
||||
ANIM_FIGHT_LONGKICK,
|
||||
ANIM_FIGHT_PPUNCH,
|
||||
|
||||
ANIM_FIGHT_JAB,
|
||||
ANIM_FIGHT_ELBOW_L,
|
||||
ANIM_FIGHT_ELBOW_R,
|
||||
ANIM_FIGHT_BKICK_L,
|
||||
ANIM_FIGHT_BKICK_R,
|
||||
|
||||
ANIM_L_HOOK,
|
||||
ANIM_R_HOOK,
|
||||
ANIM_UPPERCUT,
|
||||
ANIM_HEADBUTT,
|
||||
ANIM_FRONTKICK,
|
||||
ANIM_ROUNDHOUSE,
|
||||
ANIM_HIT_L_HOOK,
|
||||
ANIM_HIT_R_HOOK,
|
||||
ANIM_HIT_UPPERCUT,
|
||||
ANIM_HIT_HEADBUTT,
|
||||
ANIM_HIT_FRONTKICK,
|
||||
ANIM_HIT_RHOUSE,
|
||||
ANIM_BOMBER,
|
||||
ANIM_PUNCH_R,
|
||||
ANIM_FIGHT_PPUNCH2,
|
||||
|
@ -164,6 +157,7 @@ enum AnimationId
|
|||
|
||||
ANIM_EV_STEP,
|
||||
ANIM_EV_DIVE,
|
||||
ANIM_COMMANDO_ROLL,
|
||||
ANIM_XPRESS_SCRATCH,
|
||||
ANIM_ROAD_CROSS,
|
||||
ANIM_TURN_180,
|
||||
|
@ -269,5 +263,66 @@ enum AnimationId
|
|||
ANIM_STRIP_F,
|
||||
ANIM_STRIP_G,
|
||||
|
||||
|
||||
ANIM_MPNOTE,
|
||||
ANIM_MPNOTE_LOOP,
|
||||
|
||||
ANIM_IDLE_LOOK,
|
||||
ANIM_IDLE_NO,
|
||||
ANIM_IDLE_YES,
|
||||
ANIM_IDLE_CHAT2,
|
||||
ANIM_IDLE_COUGH,
|
||||
ANIM_IDLE_GIGGLE_FEMALE,
|
||||
ANIM_IDLE_TOUGH_CHAT,
|
||||
ANIM_IDLE_CELL_TALK,
|
||||
|
||||
ANIM_DONH2_CAMERA,
|
||||
ANIM_DONH3_HAPPY,
|
||||
|
||||
ANIM_JDT2_ANXIOUS_TALK,
|
||||
ANIM_JDT2_SHRUG,
|
||||
ANIM_JDT4_DILDO_TALK,
|
||||
ANIM_JDT5_CALM_DOWN,
|
||||
ANIM_JDT5_POINT,
|
||||
ANIM_JDT6_PICKUP,
|
||||
ANIM_JDT6_DOORKNOCK,
|
||||
|
||||
ANIM_MAR1_SKIRT,
|
||||
ANIM_MAR2_CELL_ANSWER,
|
||||
ANIM_MAR2_CELL_END,
|
||||
ANIM_MAR2_CELL_TALK,
|
||||
ANIM_MAR2_FOOT_TAP,
|
||||
ANIM_MAR3_HOOCHY,
|
||||
ANIM_MAR3_NOTE_IDLE,
|
||||
ANIM_MAR3_NOTE_PICK,
|
||||
|
||||
ANIM_SAL1_BIREFCASE_DOWN,
|
||||
ANIM_SAL2_IDLE_SEATED,
|
||||
ANIM_SAL2_SEAT_TO_STAND,
|
||||
ANIM_SAL3_SEATED_TALK,
|
||||
ANIM_SAL3_SEATED_IDLE,
|
||||
ANIM_SAL3_SIT_DOWN,
|
||||
ANIM_SAL4_DUSTDOWN,
|
||||
ANIM_SAL4_GIRLRUN,
|
||||
ANIM_SAL6_ANGRY_SEATED,
|
||||
ANIM_SAL6_IDLE_SEATED,
|
||||
ANIM_SAL7_LOOKOUT,
|
||||
|
||||
ANIM_VIC2_POINT_ANGRY,
|
||||
ANIM_VIC3_WAFT,
|
||||
ANIM_VIC3_PICKUP_ROLL,
|
||||
ANIM_VIC4_CARRY_BOX,
|
||||
ANIM_VIC4_CELL_LOOK,
|
||||
ANIM_VIC4_CRATE_IDLE,
|
||||
ANIM_VIC6_CELL_ANGRY,
|
||||
|
||||
ANIM_TOURIST3,
|
||||
ANIM_TOURIST2,
|
||||
ANIM_TOURIST1,
|
||||
|
||||
ANIM_MAC2_PLEAD,
|
||||
|
||||
ANIM_VIC7_PROD_WITH_FOOT,
|
||||
|
||||
NUM_ANIMS
|
||||
};
|
|
@ -4363,14 +4363,18 @@ cAudioManager::ProcessPedOneShots(cPedParams ¶ms)
|
|||
if (weaponType == WEAPONTYPE_BRASSKNUCKLE) {
|
||||
CPed* ped = params.m_pPed;
|
||||
uint32 fightMove = ped->m_curFightMove;
|
||||
if (fightMove == FIGHTMOVE_BACKLEFT || fightMove == FIGHTMOVE_STDPUNCH || fightMove == FIGHTMOVE_PUNCH ||
|
||||
// LCS:removed for now
|
||||
//if (fightMove == FIGHTMOVE_BACKLEFT || fightMove == FIGHTMOVE_STDPUNCH || fightMove == FIGHTMOVE_PUNCH ||
|
||||
if (
|
||||
ped->m_nPedState == PED_ATTACK) {
|
||||
CEntity* damageEntity = ped->m_pDamageEntity;
|
||||
if (!damageEntity)
|
||||
m_sQueueSample.m_nSampleIndex = m_anRandomTable[3] % 2 + SFX_HAMMER_HIT_1;
|
||||
else if (damageEntity->GetType() != ENTITY_TYPE_PED)
|
||||
m_sQueueSample.m_nSampleIndex = m_anRandomTable[3] % 2 + SFX_HAMMER_HIT_1;
|
||||
else if (((CPed*)damageEntity)->m_curFightMove != FIGHTMOVE_HITHEAD)
|
||||
// LCS:removed for now
|
||||
//else if (((CPed*)damageEntity)->m_curFightMove != FIGHTMOVE_HITHEAD)
|
||||
else if(1)
|
||||
m_sQueueSample.m_nSampleIndex = m_anRandomTable[3] % 2 + SFX_HAMMER_HIT_1;
|
||||
else
|
||||
m_sQueueSample.m_nSampleIndex = SFX_HAMMER_HIT_1;
|
||||
|
|
|
@ -3947,11 +3947,11 @@ CCam::Process_Debug(const CVector&, float, float, float)
|
|||
}
|
||||
|
||||
// stay inside sectors
|
||||
while(CWorld::GetSectorX(Source.x) > 75.0f)
|
||||
while(CWorld::GetSectorX(Source.x) > NUMSECTORS_X-5.0f)
|
||||
Source.x -= 1.0f;
|
||||
while(CWorld::GetSectorX(Source.x) < 5.0f)
|
||||
Source.x += 1.0f;
|
||||
while(CWorld::GetSectorY(Source.y) > 75.0f)
|
||||
while(CWorld::GetSectorY(Source.y) > NUMSECTORS_X-5.0f)
|
||||
Source.y -= 1.0f;
|
||||
while(CWorld::GetSectorY(Source.y) < 5.0f)
|
||||
Source.y += 1.0f;
|
||||
|
@ -4018,11 +4018,11 @@ CCam::Process_Debug(const CVector&, float, float, float)
|
|||
}
|
||||
|
||||
// stay inside sectors
|
||||
while(CWorld::GetSectorX(Source.x) > 75.0f)
|
||||
while(CWorld::GetSectorX(Source.x) > NUMSECTORS_X-5.0f)
|
||||
Source.x -= 1.0f;
|
||||
while(CWorld::GetSectorX(Source.x) < 5.0f)
|
||||
Source.x += 1.0f;
|
||||
while(CWorld::GetSectorY(Source.y) > 75.0f)
|
||||
while(CWorld::GetSectorY(Source.y) > NUMSECTORS_X-5.0f)
|
||||
Source.y -= 1.0f;
|
||||
while(CWorld::GetSectorY(Source.y) < 5.0f)
|
||||
Source.y += 1.0f;
|
||||
|
@ -4099,11 +4099,11 @@ CCam::Process_Editor(const CVector&, float, float, float)
|
|||
}
|
||||
|
||||
// stay inside sectors
|
||||
while(CWorld::GetSectorX(Source.x) > 75.0f)
|
||||
while(CWorld::GetSectorX(Source.x) > NUMSECTORS_X-5.0f)
|
||||
Source.x -= 1.0f;
|
||||
while(CWorld::GetSectorX(Source.x) < 5.0f)
|
||||
Source.x += 1.0f;
|
||||
while(CWorld::GetSectorY(Source.y) > 75.0f)
|
||||
while(CWorld::GetSectorY(Source.y) > NUMSECTORS_X-5.0f)
|
||||
Source.y -= 1.0f;
|
||||
while(CWorld::GetSectorY(Source.y) < 5.0f)
|
||||
Source.y += 1.0f;
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
#include "common.h"
|
||||
#include "KeyGen.h"
|
||||
#if defined _WIN32 && !defined __MINGW32__
|
||||
#include "ctype.h"
|
||||
#else
|
||||
#include <cwctype>
|
||||
#endif
|
||||
#include <ctype.h>
|
||||
|
||||
uint32 CKeyGen::keyTable[256] =
|
||||
{
|
||||
|
|
|
@ -1151,12 +1151,9 @@ CStreaming::RemoveModel(int32 id)
|
|||
void
|
||||
CStreaming::RemoveUnusedBuildings(eLevelName level)
|
||||
{
|
||||
if(level != LEVEL_INDUSTRIAL)
|
||||
RemoveBuildings(LEVEL_INDUSTRIAL);
|
||||
if(level != LEVEL_COMMERCIAL)
|
||||
RemoveBuildings(LEVEL_COMMERCIAL);
|
||||
if(level != LEVEL_SUBURBAN)
|
||||
RemoveBuildings(LEVEL_SUBURBAN);
|
||||
for(int i = LEVEL_INDUSTRIAL; i < NUM_LEVELS; i++)
|
||||
if(level != i)
|
||||
RemoveBuildings((eLevelName)i);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1279,12 +1276,9 @@ CStreaming::RemoveUnusedBigBuildings(eLevelName level)
|
|||
{
|
||||
ISLAND_LOADING_IS(LOW)
|
||||
{
|
||||
if(level != LEVEL_INDUSTRIAL)
|
||||
RemoveBigBuildings(LEVEL_INDUSTRIAL);
|
||||
if(level != LEVEL_COMMERCIAL)
|
||||
RemoveBigBuildings(LEVEL_COMMERCIAL);
|
||||
if(level != LEVEL_SUBURBAN)
|
||||
RemoveBigBuildings(LEVEL_SUBURBAN);
|
||||
for(int i = LEVEL_INDUSTRIAL; i < NUM_LEVELS; i++)
|
||||
if(level != i)
|
||||
RemoveBuildings((eLevelName)i);
|
||||
}
|
||||
RemoveIslandsNotUsed(level);
|
||||
}
|
||||
|
@ -1324,8 +1318,11 @@ CStreaming::RemoveIslandsNotUsed(eLevelName level)
|
|||
}
|
||||
#ifdef NO_ISLAND_LOADING
|
||||
if(FrontEndMenuManager.m_PrefsIslandLoading == CMenuManager::ISLAND_LOADING_HIGH) {
|
||||
DeleteIsland(pIslandLODmainlandEntity);
|
||||
DeleteIsland(pIslandLODbeachEntity);
|
||||
DeleteIsland(pIslandLODindustEntity);
|
||||
DeleteIsland(pIslandLODcomIndEntity);
|
||||
DeleteIsland(pIslandLODcomSubEntity);
|
||||
DeleteIsland(pIslandLODsubIndEntity);
|
||||
DeleteIsland(pIslandLODsubComEntity);
|
||||
} else
|
||||
#endif
|
||||
switch(level){
|
||||
|
|
|
@ -214,3 +214,10 @@ public:
|
|||
|
||||
static void PrintStreamingBufferState();
|
||||
};
|
||||
|
||||
// LCS(TODO): put them into CStreaming::mspInst
|
||||
extern int32 islandLODindust;
|
||||
extern int32 islandLODcomInd;
|
||||
extern int32 islandLODcomSub;
|
||||
extern int32 islandLODsubInd;
|
||||
extern int32 islandLODsubCom;
|
||||
|
|
|
@ -4,14 +4,14 @@
|
|||
#include "Lists.h"
|
||||
#include "PlayerInfo.h"
|
||||
|
||||
/* Sectors span from -2400 to 1600 in x and -2000 to 2000 y.
|
||||
* With 80x80 sectors, each is 50x50 units. */
|
||||
/* Sectors span from -2000 to 2000 in x and y.
|
||||
* With 100x100 sectors, each is 40x40 units. */
|
||||
|
||||
#define SECTOR_SIZE_X (50.0f)
|
||||
#define SECTOR_SIZE_Y (50.0f)
|
||||
#define SECTOR_SIZE_X (40.0f)
|
||||
#define SECTOR_SIZE_Y (40.0f)
|
||||
|
||||
#define NUMSECTORS_X (80)
|
||||
#define NUMSECTORS_Y (80)
|
||||
#define NUMSECTORS_X (100)
|
||||
#define NUMSECTORS_Y (100)
|
||||
|
||||
#define WORLD_SIZE_X (NUMSECTORS_X * SECTOR_SIZE_X)
|
||||
#define WORLD_SIZE_Y (NUMSECTORS_Y * SECTOR_SIZE_Y)
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
#include "RwHelper.h"
|
||||
#include "ModelIndices.h"
|
||||
#include "Timer.h"
|
||||
#include "Streaming.h"
|
||||
#include "Entity.h"
|
||||
#include "Object.h"
|
||||
#include "World.h"
|
||||
|
@ -623,10 +624,15 @@ CEntity::SetupBigBuilding(void)
|
|||
m_level = CTheZones::GetLevelFromPosition(&GetPosition());
|
||||
if(mi->m_lodDistances[0] <= 2000.0f)
|
||||
bStreamBIGBuilding = true;
|
||||
if(mi->m_lodDistances[0] > 2500.0f || mi->m_ignoreDrawDist)
|
||||
if(m_modelIndex == islandLODindust ||
|
||||
m_modelIndex == islandLODcomInd ||
|
||||
m_modelIndex == islandLODcomSub ||
|
||||
m_modelIndex == islandLODsubInd ||
|
||||
m_modelIndex == islandLODsubCom ||
|
||||
mi->m_lodDistances[0] > 5000.0f || mi->m_ignoreDrawDist)
|
||||
m_level = LEVEL_GENERIC;
|
||||
else if(m_level == LEVEL_GENERIC)
|
||||
printf("%s isn't in a level\n", mi->GetModelName());
|
||||
// else if(m_level == LEVEL_GENERIC)
|
||||
// printf("%s isn't in a level\n", mi->GetModelName());
|
||||
}
|
||||
|
||||
float WindTabel[] = {
|
||||
|
|
|
@ -64,12 +64,12 @@ void* operator new[](size_t size)
|
|||
return base::cMainMemoryManager::Instance()->Allocate(size);
|
||||
}
|
||||
|
||||
void operator delete(void* buf)
|
||||
void operator delete(void* buf) noexcept
|
||||
{
|
||||
base::cMainMemoryManager::Instance()->Free(buf);
|
||||
}
|
||||
|
||||
void operator delete[](void* buf)
|
||||
void operator delete[](void* buf) noexcept
|
||||
{
|
||||
base::cMainMemoryManager::Instance()->Free(buf);
|
||||
}
|
|
@ -35,5 +35,5 @@ namespace base
|
|||
|
||||
void* operator new(size_t size);
|
||||
void* operator new[](size_t size);
|
||||
void operator delete(void* buf);
|
||||
void operator delete[](void* buf);
|
||||
void operator delete(void* buf) noexcept;
|
||||
void operator delete[](void* buf) noexcept;
|
36
src/leeds/base/relocatableChunk.cpp
Normal file
36
src/leeds/base/relocatableChunk.cpp
Normal file
|
@ -0,0 +1,36 @@
|
|||
#include "common.h"
|
||||
#include "relocatableChunk.h"
|
||||
|
||||
namespace base
|
||||
{
|
||||
// TODO(LCS): add actual code (all of these are stubs)
|
||||
|
||||
void* cRelocatableChunk::Load(void* data, bool bShrink) { return nil; }
|
||||
void* cRelocatableChunk::Load(const char* name, bool bShrink) { return nil; }
|
||||
void cRelocatableChunk::Fixup(const sChunkHeader& header, void* data) {}
|
||||
void cRelocatableChunk::Fixup(void* data) {}
|
||||
void* cRelocatableChunk::Shrink(const sChunkHeader& header, void* data) { return nil; }
|
||||
void* cRelocatableChunk::Shrink(void* data) { return nil; }
|
||||
|
||||
cRelocatableChunkClassInfo::cRelocatableChunkClassInfo(const char* class_name, const void* pVmt, int size) {}
|
||||
|
||||
cRelocatableChunkWriter::cRelocatableChunkWriter() {}
|
||||
cRelocatableChunkWriter::~cRelocatableChunkWriter() {}
|
||||
|
||||
void cRelocatableChunkWriter::AddPatch(void* addr) {}
|
||||
void cRelocatableChunkWriter::AddPatchWithInfo(const char* str, int unk, void* addr) {}
|
||||
void cRelocatableChunkWriter::AllocateRaw(void* addr, uint32 size, uint32 align, bool a5, bool a6) {}
|
||||
|
||||
void cRelocatableChunkWriter::Clear() {}
|
||||
void cRelocatableChunkWriter::Class(void* ptr, const cRelocatableChunkClassInfo& classInfo) {}
|
||||
void cRelocatableChunkWriter::DebugFileLine(void*) {}
|
||||
|
||||
void cRelocatableChunkWriter::PatchFunc(void* ptr) {}
|
||||
|
||||
bool cRelocatableChunkWriter::IsAllocated(void* addr) { return false; }
|
||||
|
||||
void cRelocatableChunkWriter::Reserve(int, int) {}
|
||||
|
||||
void cRelocatableChunkWriter::Save(const char* filename, uint32 a3, uint32 a4, bool a5) {}
|
||||
void cRelocatableChunkWriter::Save(void* file, uint32 a3, uint32 a4, bool a5, sChunkHeader* pHeader) {}
|
||||
};
|
51
src/leeds/base/relocatableChunk.h
Normal file
51
src/leeds/base/relocatableChunk.h
Normal file
|
@ -0,0 +1,51 @@
|
|||
#pragma once
|
||||
|
||||
namespace base
|
||||
{
|
||||
// TODO(LCS): add actual struct fields
|
||||
|
||||
struct sChunkHeader;
|
||||
struct sDataBlock;
|
||||
struct sFileLine;
|
||||
|
||||
class cRelocatableChunk
|
||||
{
|
||||
public:
|
||||
void* Load(void* data, bool bShrink);
|
||||
void* Load(const char* name, bool bShrink);
|
||||
void Fixup(const sChunkHeader& header, void* data);
|
||||
void Fixup(void* data);
|
||||
void* Shrink(const sChunkHeader& header, void* data);
|
||||
void* Shrink(void* data);
|
||||
};
|
||||
|
||||
class cRelocatableChunkClassInfo
|
||||
{
|
||||
public:
|
||||
cRelocatableChunkClassInfo(const char* class_name, const void* pVmt, int size);
|
||||
};
|
||||
|
||||
class cRelocatableChunkWriter
|
||||
{
|
||||
public:
|
||||
cRelocatableChunkWriter();
|
||||
~cRelocatableChunkWriter();
|
||||
|
||||
void AddPatch(void* addr);
|
||||
void AddPatchWithInfo(const char* str, int unk, void* addr);
|
||||
void AllocateRaw(void* addr, uint32 size, uint32 align, bool a5 = false, bool a6 = false);
|
||||
|
||||
void Clear();
|
||||
void Class(void* ptr, const cRelocatableChunkClassInfo& classInfo);
|
||||
void DebugFileLine(void*);
|
||||
|
||||
void PatchFunc(void* ptr);
|
||||
|
||||
bool IsAllocated(void* addr);
|
||||
|
||||
void Reserve(int, int);
|
||||
|
||||
void Save(const char* filename, uint32 a3, uint32 a4, bool a5);
|
||||
void Save(void* file, uint32 a3, uint32 a4, bool a5, sChunkHeader* pHeader);
|
||||
};
|
||||
};
|
|
@ -280,7 +280,7 @@ enum
|
|||
MI_PEREN,
|
||||
MI_SENTINEL,
|
||||
MI_PATRIOT,
|
||||
MI_FIRETRUK,
|
||||
MI_FIRETRUCK,
|
||||
MI_TRASH,
|
||||
MI_STRETCH,
|
||||
MI_MANANA,
|
||||
|
@ -371,7 +371,6 @@ enum
|
|||
MI_BAGGAGE,
|
||||
MI_FBIRANCH,
|
||||
MI_VICECHEE,
|
||||
MI_FIRETRUCK,
|
||||
MI_RIO,
|
||||
MI_SQUALO,
|
||||
MI_JETMAX,
|
||||
|
|
|
@ -100,9 +100,31 @@ enum PedFightMoves
|
|||
{
|
||||
FIGHTMOVE_NULL,
|
||||
// Attacker
|
||||
FIGHTMOVE_STDPUNCH,
|
||||
// FIGHTMOVE_STDPUNCH,
|
||||
FIGHTMOVE_IDLE,
|
||||
FIGHTMOVE_SHUFFLE_F,
|
||||
// Combos
|
||||
FIGHTMOVE_COMBO_A1,
|
||||
FIGHTMOVE_COMBO_A2,
|
||||
FIGHTMOVE_COMBO_A3,
|
||||
FIGHTMOVE_COMBO_B1,
|
||||
FIGHTMOVE_COMBO_B2,
|
||||
FIGHTMOVE_COMBO_B3,
|
||||
// Melee
|
||||
FIGHTMOVE_MELEE1,
|
||||
FIGHTMOVE_MELEE2,
|
||||
FIGHTMOVE_MELEE3,
|
||||
// Special
|
||||
FIGHTMOVE_GROUNDKICK,
|
||||
// Opponent
|
||||
FIGHTMOVE_HITFRONT,
|
||||
FIGHTMOVE_HITBACK,
|
||||
FIGHTMOVE_HITRIGHT,
|
||||
FIGHTMOVE_HITLEFT,
|
||||
FIGHTMOVE_HITONFLOOR,
|
||||
FIGHTMOVE_HITBEHIND,
|
||||
FIGHTMOVE_IDLE2NORM,
|
||||
/*
|
||||
FIGHTMOVE_KNEE,
|
||||
FIGHTMOVE_PUNCHHOOK,
|
||||
FIGHTMOVE_PUNCHJAB,
|
||||
|
@ -134,7 +156,16 @@ enum PedFightMoves
|
|||
FIGHTMOVE_MELEE2,
|
||||
FIGHTMOVE_MELEE3,
|
||||
FIGHTMOVE_IDLE2NORM,
|
||||
NUM_FIGHTMOVES
|
||||
*/
|
||||
|
||||
NUM_FIGHTMOVES,
|
||||
|
||||
// LCS replacements for the old names:
|
||||
// NB: this may be totally bogus, i just need it to compile
|
||||
FIGHTMOVE_PUNCH = FIGHTMOVE_COMBO_A2,
|
||||
FIGHTMOVE_FWDRIGHT = FIGHTMOVE_COMBO_B1,
|
||||
FIGHTMOVE_LONGKICK = FIGHTMOVE_COMBO_B2,
|
||||
FIGHTMOVE_ROUNDHOUSE = FIGHTMOVE_COMBO_B3,
|
||||
};
|
||||
|
||||
enum ePedPieceTypes
|
||||
|
|
|
@ -33,6 +33,7 @@ RpClump* flyingClumpTemp;
|
|||
|
||||
FightMove tFightMoves[NUM_FIGHTMOVES] =
|
||||
{
|
||||
/*
|
||||
{ NUM_STD_ANIMS, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, HITLEVEL_NULL, 0, 0 },
|
||||
{ ANIM_PUNCH_R, 0.2f, 8.f/30.f, 0.0f, 0.3f, 1.0f, HITLEVEL_HIGH, 1, 0 },
|
||||
{ ANIM_FIGHT_IDLE, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, HITLEVEL_NULL, 0, 0 },
|
||||
|
@ -65,6 +66,7 @@ FightMove tFightMoves[NUM_FIGHTMOVES] =
|
|||
{ ANIM_WEAPON_CROUCHFIRE, 4.f/30.f, 7.f/30.f, 10.f/30.f, 0.4f, 1.0f, HITLEVEL_HIGH, 1, 0 },
|
||||
{ ANIM_WEAPON_SPECIAL, 4.f / 30.f, 7.f / 30.f, 10.f / 30.f, 0.4f, 1.0f, HITLEVEL_HIGH, 1, 0 },
|
||||
{ ANIM_FIGHT2_IDLE, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, HITLEVEL_NULL, 0, 0 }
|
||||
*/
|
||||
};
|
||||
|
||||
static PedOnGroundState
|
||||
|
@ -1115,10 +1117,7 @@ CPed::StartFightAttack(uint8 buttonPressure)
|
|||
break;
|
||||
}
|
||||
} else {
|
||||
if (m_curFightMove == FIGHTMOVE_BACKKICK)
|
||||
animAssoc->speed = 1.15f;
|
||||
else
|
||||
animAssoc->speed = 0.8f;
|
||||
animAssoc->speed = 0.8f;
|
||||
}
|
||||
if (IsPlayer())
|
||||
animAssoc->SetCurrentTime(0.08f);
|
||||
|
@ -1227,12 +1226,14 @@ CPed::StartFightDefend(uint8 direction, uint8 hitLevel, uint8 unk)
|
|||
default:
|
||||
if (hitLevel == HITLEVEL_LOW) {
|
||||
hitAnim = ANIM_KO_SHOT_STOM;
|
||||
/* LCS: removed
|
||||
} else if (CGeneral::GetRandomNumber() & 1) {
|
||||
fall = false;
|
||||
hitAnim = ANIM_HIT_WALK;
|
||||
} else if (CGeneral::GetRandomNumber() & 1) {
|
||||
fall = false;
|
||||
hitAnim = ANIM_HIT_HEAD;
|
||||
*/
|
||||
} else {
|
||||
hitAnim = ANIM_KO_SHOT_FACE;
|
||||
}
|
||||
|
@ -1267,7 +1268,7 @@ CPed::StartFightDefend(uint8 direction, uint8 hitLevel, uint8 unk)
|
|||
Say(SOUND_PED_DEFEND);
|
||||
return;
|
||||
}
|
||||
m_curFightMove = FIGHTMOVE_HITBODY;
|
||||
m_curFightMove = FIGHTMOVE_HITFRONT; // LCS
|
||||
break;
|
||||
case HITLEVEL_HIGH:
|
||||
switch (direction) {
|
||||
|
@ -1281,10 +1282,12 @@ CPed::StartFightDefend(uint8 direction, uint8 hitLevel, uint8 unk)
|
|||
m_curFightMove = FIGHTMOVE_HITRIGHT;
|
||||
break;
|
||||
default:
|
||||
if (unk <= 5)
|
||||
m_curFightMove = FIGHTMOVE_HITHEAD;
|
||||
else
|
||||
m_curFightMove = FIGHTMOVE_HITBIGSTEP;
|
||||
// LCS: removed
|
||||
//if (unk <= 5)
|
||||
// m_curFightMove = FIGHTMOVE_HITHEAD;
|
||||
//else
|
||||
// m_curFightMove = FIGHTMOVE_HITBIGSTEP;
|
||||
m_curFightMove = FIGHTMOVE_HITFRONT;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
@ -1300,10 +1303,12 @@ CPed::StartFightDefend(uint8 direction, uint8 hitLevel, uint8 unk)
|
|||
m_curFightMove = FIGHTMOVE_HITRIGHT;
|
||||
break;
|
||||
default:
|
||||
if (unk <= 5)
|
||||
m_curFightMove = FIGHTMOVE_HITCHEST;
|
||||
else
|
||||
m_curFightMove = FIGHTMOVE_HITBIGSTEP;
|
||||
// LCS: removed
|
||||
//if (unk <= 5)
|
||||
// m_curFightMove = FIGHTMOVE_HITCHEST;
|
||||
//else
|
||||
// m_curFightMove = FIGHTMOVE_HITBIGSTEP;
|
||||
m_curFightMove = FIGHTMOVE_HITFRONT;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
@ -1457,30 +1462,30 @@ CPed::Fight(void)
|
|||
CVector touchingNodePos(0.0f, 0.0f, 0.0f);
|
||||
|
||||
switch (m_curFightMove) {
|
||||
case FIGHTMOVE_KNEE:
|
||||
TransformToNode(touchingNodePos, PED_LOWERLEGR);
|
||||
break;
|
||||
case FIGHTMOVE_PUNCHHOOK:
|
||||
case FIGHTMOVE_PUNCHJAB:
|
||||
TransformToNode(touchingNodePos, PED_HANDL);
|
||||
break;
|
||||
// case FIGHTMOVE_KNEE:
|
||||
// TransformToNode(touchingNodePos, PED_LOWERLEGR);
|
||||
// break;
|
||||
// case FIGHTMOVE_PUNCHHOOK:
|
||||
// case FIGHTMOVE_PUNCHJAB:
|
||||
// TransformToNode(touchingNodePos, PED_HANDL);
|
||||
// break;
|
||||
case FIGHTMOVE_LONGKICK:
|
||||
case FIGHTMOVE_ROUNDHOUSE:
|
||||
case FIGHTMOVE_FWDLEFT:
|
||||
case FIGHTMOVE_BACKRIGHT:
|
||||
// case FIGHTMOVE_FWDLEFT:
|
||||
// case FIGHTMOVE_BACKRIGHT:
|
||||
case FIGHTMOVE_GROUNDKICK:
|
||||
TransformToNode(touchingNodePos, PED_FOOTR);
|
||||
break;
|
||||
case FIGHTMOVE_FWDRIGHT:
|
||||
TransformToNode(touchingNodePos, PED_HEAD);
|
||||
break;
|
||||
case FIGHTMOVE_BACKKICK:
|
||||
case FIGHTMOVE_BACKFLIP:
|
||||
TransformToNode(touchingNodePos, PED_FOOTL);
|
||||
break;
|
||||
case FIGHTMOVE_BACKLEFT:
|
||||
TransformToNode(touchingNodePos, PED_UPPERARML);
|
||||
break;
|
||||
// case FIGHTMOVE_BACKKICK:
|
||||
// case FIGHTMOVE_BACKFLIP:
|
||||
// TransformToNode(touchingNodePos, PED_FOOTL);
|
||||
// break;
|
||||
// case FIGHTMOVE_BACKLEFT:
|
||||
// TransformToNode(touchingNodePos, PED_UPPERARML);
|
||||
// break;
|
||||
default:
|
||||
TransformToNode(touchingNodePos, PED_HANDR);
|
||||
break;
|
||||
|
@ -1532,10 +1537,7 @@ CPed::Fight(void)
|
|||
tFightMoves[m_curFightMove].animId, 8.0f);
|
||||
|
||||
if (weaponInfo->m_AnimToPlay != ASSOCGRP_KNIFE || m_curFightMove < FIGHTMOVE_MELEE1) {
|
||||
if (m_curFightMove == FIGHTMOVE_BACKKICK)
|
||||
animAssoc->speed = 1.15f;
|
||||
else
|
||||
animAssoc->speed = 0.8f;
|
||||
animAssoc->speed = 0.8f;
|
||||
} else {
|
||||
switch (GetWeapon()->m_eWeaponType) {
|
||||
case WEAPONTYPE_SCREWDRIVER:
|
||||
|
@ -1676,8 +1678,9 @@ CPed::ChooseAttackAI(uint8 buttonPressure, bool fightWithWeapon)
|
|||
return FIGHTMOVE_IDLE;
|
||||
}
|
||||
}
|
||||
if (dist < 0.95f && canKneeHead)
|
||||
return FIGHTMOVE_KNEE;
|
||||
// LCS: removed
|
||||
//if (dist < 0.95f && canKneeHead)
|
||||
// return FIGHTMOVE_KNEE;
|
||||
if (dist < 1.4f)
|
||||
return FIGHTMOVE_PUNCH;
|
||||
if (dist < 2.f && canKick) {
|
||||
|
@ -1796,9 +1799,11 @@ CPed::ChooseAttackPlayer(uint8 buttonPressure, bool fightWithWeapon)
|
|||
switch (dir) {
|
||||
case 0: // forward
|
||||
if (fightWithWeapon) {
|
||||
if (distToVictim < 0.95f - 0.2f && m_nPedState == PED_FIGHT) {
|
||||
choosenMove = FIGHTMOVE_KNEE;
|
||||
} else {
|
||||
// LCS: removed
|
||||
//if (distToVictim < 0.95f - 0.2f && m_nPedState == PED_FIGHT) {
|
||||
// choosenMove = FIGHTMOVE_KNEE;
|
||||
//} else
|
||||
{
|
||||
if (GetWeapon()->m_eWeaponType == WEAPONTYPE_CLEAVER) {
|
||||
if (distToVictim < 0.85f * weaponInfo->m_fRange)
|
||||
choosenMove = FIGHTMOVE_MELEE1;
|
||||
|
@ -1821,18 +1826,20 @@ CPed::ChooseAttackPlayer(uint8 buttonPressure, bool fightWithWeapon)
|
|||
}
|
||||
}
|
||||
}
|
||||
} else if (distToVictim < 0.95f && m_nPedState == PED_FIGHT) {
|
||||
choosenMove = FIGHTMOVE_KNEE;
|
||||
// LCS: removed
|
||||
//} else if (distToVictim < 0.95f && m_nPedState == PED_FIGHT) {
|
||||
// choosenMove = FIGHTMOVE_KNEE;
|
||||
|
||||
} else if (distToVictim < 1.4f) {
|
||||
if (m_curFightMove == FIGHTMOVE_PUNCHJAB) {
|
||||
// LCS: removed
|
||||
/*if (m_curFightMove == FIGHTMOVE_PUNCHJAB) {
|
||||
choosenMove = FIGHTMOVE_PUNCH;
|
||||
|
||||
} else if (m_curFightMove != FIGHTMOVE_PUNCH || randVal != 1) {
|
||||
if (randVal == 2)
|
||||
} else*/ if (m_curFightMove != FIGHTMOVE_PUNCH || randVal != 1) {
|
||||
//if (randVal == 2)
|
||||
choosenMove = FIGHTMOVE_PUNCH;
|
||||
else
|
||||
choosenMove = FIGHTMOVE_PUNCHJAB;
|
||||
//else
|
||||
// choosenMove = FIGHTMOVE_PUNCHJAB;
|
||||
} else {
|
||||
choosenMove = FIGHTMOVE_LONGKICK;
|
||||
}
|
||||
|
@ -1840,6 +1847,7 @@ CPed::ChooseAttackPlayer(uint8 buttonPressure, bool fightWithWeapon)
|
|||
choosenMove = FIGHTMOVE_LONGKICK;
|
||||
}
|
||||
break;
|
||||
/* LCS: removed
|
||||
case 1:
|
||||
choosenMove = FIGHTMOVE_FWDLEFT;
|
||||
break;
|
||||
|
@ -1852,6 +1860,7 @@ CPed::ChooseAttackPlayer(uint8 buttonPressure, bool fightWithWeapon)
|
|||
case 4:
|
||||
choosenMove = FIGHTMOVE_BACKRIGHT;
|
||||
break;
|
||||
*/
|
||||
default:
|
||||
choosenMove = FIGHTMOVE_FWDRIGHT;
|
||||
break;
|
||||
|
@ -1917,20 +1926,22 @@ CPed::ChooseAttackPlayer(uint8 buttonPressure, bool fightWithWeapon)
|
|||
#else
|
||||
switch (CGeneral::GetRandomNumberInRange(0,3)) {
|
||||
#endif
|
||||
case 0:
|
||||
choosenMove = FIGHTMOVE_PUNCHJAB;
|
||||
break;
|
||||
// LCS: hack hack
|
||||
// case 0:
|
||||
// choosenMove = FIGHTMOVE_PUNCHJAB;
|
||||
// break;
|
||||
default:
|
||||
case 1:
|
||||
choosenMove = FIGHTMOVE_PUNCH;
|
||||
break;
|
||||
case 2:
|
||||
choosenMove = FIGHTMOVE_LONGKICK;
|
||||
break;
|
||||
case 3:
|
||||
choosenMove = FIGHTMOVE_KNEE;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
// case 3:
|
||||
// choosenMove = FIGHTMOVE_KNEE;
|
||||
// break;
|
||||
// default:
|
||||
// break;
|
||||
}
|
||||
}
|
||||
return choosenMove;
|
||||
|
@ -1975,6 +1986,7 @@ CPed::EndFight(uint8 endType)
|
|||
void
|
||||
CPed::PlayHitSound(CPed *hitTo)
|
||||
{
|
||||
#if 0 // LCS: temporarily removed
|
||||
// That was very complicated to reverse for me...
|
||||
// First index is our fight move ID (from 1 to 17, total 17), second is the one of we fight with (from 18 to 27, total 10).
|
||||
enum {
|
||||
|
@ -2045,6 +2057,7 @@ CPed::PlayHitSound(CPed *hitTo)
|
|||
|
||||
if (soundId != NO_SND)
|
||||
DMAudio.PlayOneShot(m_audioEntityId, soundId, (weapon << 8) | ENTITY_TYPE_PED);
|
||||
#endif
|
||||
}
|
||||
|
||||
// --MIAMI: Done
|
||||
|
@ -2178,8 +2191,9 @@ CPed::FightHitPed(CPed *victim, CVector &touchPoint, CVector &dir, int16 piece)
|
|||
|
||||
bool brassKnucklePunch = false;
|
||||
if (GetWeapon()->m_eWeaponType == WEAPONTYPE_BRASSKNUCKLE) {
|
||||
if (m_curFightMove == FIGHTMOVE_PUNCHHOOK || m_curFightMove == FIGHTMOVE_PUNCHJAB || m_curFightMove == FIGHTMOVE_BACKLEFT ||
|
||||
m_curFightMove == FIGHTMOVE_STDPUNCH || m_curFightMove == FIGHTMOVE_PUNCH) {
|
||||
// LCS: removed
|
||||
if (/*m_curFightMove == FIGHTMOVE_PUNCHHOOK || m_curFightMove == FIGHTMOVE_PUNCHJAB || m_curFightMove == FIGHTMOVE_BACKLEFT ||
|
||||
m_curFightMove == FIGHTMOVE_STDPUNCH ||*/ m_curFightMove == FIGHTMOVE_PUNCH) {
|
||||
brassKnucklePunch = true;
|
||||
damageMult *= 1.5f;
|
||||
}
|
||||
|
|
|
@ -1172,7 +1172,8 @@ void
|
|||
CPlayerPed::ProcessAnimGroups(void)
|
||||
{
|
||||
AssocGroupId groupToSet;
|
||||
#ifdef PC_PLAYER_CONTROLS
|
||||
//#ifdef PC_PLAYER_CONTROLS
|
||||
#if 0 // chainsaw anims missing in LCS
|
||||
if ((m_fWalkAngle <= -DEGTORAD(50.0f) || m_fWalkAngle >= DEGTORAD(50.0f))
|
||||
&& TheCamera.Cams[TheCamera.ActiveCam].Using3rdPersonMouseCam()
|
||||
&& CanStrafeOrMouseControl()) {
|
||||
|
|
|
@ -228,7 +228,7 @@ CTimeCycle::Initialise(void)
|
|||
for(h = 0; h < NUMHOURS; h++){
|
||||
li = 0;
|
||||
while(work_buff[bi] == '/' || work_buff[bi] == '\n' ||
|
||||
work_buff[bi] == '\0' || work_buff[bi] == ' ' || work_buff[bi] == '\r'){
|
||||
work_buff[bi] == '\0' || work_buff[bi] == '\r'){
|
||||
while(work_buff[bi] != '\n' && work_buff[bi] != '\0' && work_buff[bi] != '\r')
|
||||
bi++;
|
||||
bi++;
|
||||
|
|
|
@ -399,7 +399,7 @@ RsInitialize(void)
|
|||
*/
|
||||
RwBool result;
|
||||
|
||||
RsGlobal.appName = RWSTRING("GTA: Vice City");
|
||||
RsGlobal.appName = RWSTRING("GTA: Liberty City Stories");
|
||||
RsGlobal.maximumWidth = DEFAULT_SCREEN_WIDTH;
|
||||
RsGlobal.maximumHeight = DEFAULT_SCREEN_HEIGHT;
|
||||
RsGlobal.width = DEFAULT_SCREEN_WIDTH;
|
||||
|
|
|
@ -1641,13 +1641,13 @@ CAutomobile::ProcessControl(void)
|
|||
// TODO: make the numbers defines
|
||||
|
||||
float heading;
|
||||
if(GetPosition().x > 1950.0f-400.0f){
|
||||
if(GetPosition().x > 1950.0f){
|
||||
if(m_vecMoveSpeed.x > 0.0f)
|
||||
m_vecMoveSpeed.x *= -1.0f;
|
||||
heading = GetForward().Heading();
|
||||
if(heading > 0.0f) // going west
|
||||
SetHeading(-heading);
|
||||
}else if(GetPosition().x < -1950.0f-400.0f){
|
||||
}else if(GetPosition().x < -1950.0f){
|
||||
if(m_vecMoveSpeed.x < 0.0f)
|
||||
m_vecMoveSpeed.x *= -1.0f;
|
||||
heading = GetForward().Heading();
|
||||
|
|
Loading…
Reference in a new issue