mirror of
https://git.rip/DMCA_FUCKER/re3.git
synced 2024-12-23 18:10:00 +00:00
Merge branch 'lcs' into lcsfont
# Conflicts: # src/render/Font.cpp
This commit is contained in:
commit
8d2aa61f9b
8
.github/workflows/build-cmake-conan.yml
vendored
8
.github/workflows/build-cmake-conan.yml
vendored
|
@ -1,4 +1,4 @@
|
||||||
name: reVC conan+cmake
|
name: reLCS conan+cmake
|
||||||
on:
|
on:
|
||||||
pull_request:
|
pull_request:
|
||||||
push:
|
push:
|
||||||
|
@ -95,13 +95,13 @@ jobs:
|
||||||
conan export re3mss miles-sdk/master@
|
conan export re3mss miles-sdk/master@
|
||||||
- name: "Download/build dependencies (conan install)"
|
- name: "Download/build dependencies (conan install)"
|
||||||
run: |
|
run: |
|
||||||
conan install ${{ github.workspace }} reVC/master@ -if build -o reVC:audio=${{ matrix.audio }} -o librw:platform=${{ matrix.platform }} -o librw:gl3_gfxlib=${{ matrix.gl3_gfxlib || 'glfw' }} --build missing -pr:h ./host_profile -pr:b default -s reVC:build_type=RelWithDebInfo -s librw:build_type=RelWithDebInfo
|
conan install ${{ github.workspace }} reLCS/master@ -if build -o reLCS:audio=${{ matrix.audio }} -o librw:platform=${{ matrix.platform }} -o librw:gl3_gfxlib=${{ matrix.gl3_gfxlib || 'glfw' }} --build missing -pr:h ./host_profile -pr:b default -s reLCS:build_type=RelWithDebInfo -s librw:build_type=RelWithDebInfo
|
||||||
env:
|
env:
|
||||||
CONAN_SYSREQUIRES_MODE: enabled
|
CONAN_SYSREQUIRES_MODE: enabled
|
||||||
- name: "Build reVC (conan build)"
|
- name: "Build reLCS (conan build)"
|
||||||
run: |
|
run: |
|
||||||
conan build ${{ github.workspace }} -if build -bf build -pf package
|
conan build ${{ github.workspace }} -if build -bf build -pf package
|
||||||
- name: "Package reVC (conan package)"
|
- name: "Package reLCS (conan package)"
|
||||||
run: |
|
run: |
|
||||||
conan package ${{ github.workspace }} -if build -bf build -pf package
|
conan package ${{ github.workspace }} -if build -bf build -pf package
|
||||||
- name: "Create binary package (cpack)"
|
- name: "Create binary package (cpack)"
|
||||||
|
|
18
conanfile.py
18
conanfile.py
|
@ -5,8 +5,8 @@ import shutil
|
||||||
import textwrap
|
import textwrap
|
||||||
|
|
||||||
|
|
||||||
class ReVCConan(ConanFile):
|
class ReLCSConan(ConanFile):
|
||||||
name = "reVC"
|
name = "reLCS"
|
||||||
version = "master"
|
version = "master"
|
||||||
license = "???" # FIXME: https://github.com/GTAmodding/re3/issues/794
|
license = "???" # FIXME: https://github.com/GTAmodding/re3/issues/794
|
||||||
settings = "os", "arch", "compiler", "build_type"
|
settings = "os", "arch", "compiler", "build_type"
|
||||||
|
@ -69,10 +69,10 @@ class ReVCConan(ConanFile):
|
||||||
raise ConanInvalidConfiguration("Only `glfw` is supported as gl3_gfxlib.")
|
raise ConanInvalidConfiguration("Only `glfw` is supported as gl3_gfxlib.")
|
||||||
#if not self.options.with_opus:
|
#if not self.options.with_opus:
|
||||||
# if not self.options["libsndfile"].with_external_libs:
|
# if not self.options["libsndfile"].with_external_libs:
|
||||||
# raise ConanInvalidConfiguration("reVC with opus support requires a libsndfile built with external libs (=ogg/flac/opus/vorbis)")
|
# raise ConanInvalidConfiguration("reLCS with opus support requires a libsndfile built with external libs (=ogg/flac/opus/vorbis)")
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def _reVC_audio(self):
|
def _reLCS_audio(self):
|
||||||
return {
|
return {
|
||||||
"miles": "MSS",
|
"miles": "MSS",
|
||||||
"openal": "OAL",
|
"openal": "OAL",
|
||||||
|
@ -111,16 +111,16 @@ class ReVCConan(ConanFile):
|
||||||
include("{}/conanbuildinfo.cmake")
|
include("{}/conanbuildinfo.cmake")
|
||||||
conan_basic_setup(TARGETS NO_OUTPUT_DIRS)
|
conan_basic_setup(TARGETS NO_OUTPUT_DIRS)
|
||||||
|
|
||||||
add_subdirectory("{}" reVC)
|
add_subdirectory("{}" reLCS)
|
||||||
""").format(self.install_folder.replace("\\", "/"),
|
""").format(self.install_folder.replace("\\", "/"),
|
||||||
self.source_folder.replace("\\", "/")))
|
self.source_folder.replace("\\", "/")))
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
pass
|
pass
|
||||||
cmake = CMake(self)
|
cmake = CMake(self)
|
||||||
cmake.definitions["REVC_AUDIO"] = self._reVC_audio
|
cmake.definitions["RELCS_AUDIO"] = self._reLCS_audio
|
||||||
cmake.definitions["REVC_WITH_OPUS"] = self.options.with_opus
|
cmake.definitions["RELCS_WITH_OPUS"] = self.options.with_opus
|
||||||
cmake.definitions["REVC_INSTALL"] = True
|
cmake.definitions["RELCS_INSTALL"] = True
|
||||||
cmake.definitions["REVC_VENDORED_LIBRW"] = False
|
cmake.definitions["RELCS_VENDORED_LIBRW"] = False
|
||||||
env = {}
|
env = {}
|
||||||
if self._os_is_playstation2:
|
if self._os_is_playstation2:
|
||||||
cmake.definitions["CMAKE_TOOLCHAIN_FILE"] = self.deps_user_info["ps2dev-cmaketoolchain"].cmake_toolchain_file
|
cmake.definitions["CMAKE_TOOLCHAIN_FILE"] = self.deps_user_info["ps2dev-cmaketoolchain"].cmake_toolchain_file
|
||||||
|
|
|
@ -996,11 +996,13 @@ cSampleManager::Initialise(void)
|
||||||
#ifdef AUDIO_CACHE
|
#ifdef AUDIO_CACHE
|
||||||
FILE *cacheFile = fcaseopen("audio\\sound.cache", "rb");
|
FILE *cacheFile = fcaseopen("audio\\sound.cache", "rb");
|
||||||
if (cacheFile) {
|
if (cacheFile) {
|
||||||
|
debug("Loadind audio cache (If game crashes around here, then your cache is corrupted, remove audio/sound.cache)\n");
|
||||||
fread(nStreamLength, sizeof(uint32), TOTAL_STREAMED_SOUNDS, cacheFile);
|
fread(nStreamLength, sizeof(uint32), TOTAL_STREAMED_SOUNDS, cacheFile);
|
||||||
fclose(cacheFile);
|
fclose(cacheFile);
|
||||||
} else
|
} else
|
||||||
#endif
|
|
||||||
{
|
{
|
||||||
|
debug("Cannot load audio cache\n");
|
||||||
|
#endif
|
||||||
|
|
||||||
for ( int32 i = 0; i < TOTAL_STREAMED_SOUNDS; i++ )
|
for ( int32 i = 0; i < TOTAL_STREAMED_SOUNDS; i++ )
|
||||||
{
|
{
|
||||||
|
@ -1019,10 +1021,15 @@ cSampleManager::Initialise(void)
|
||||||
}
|
}
|
||||||
#ifdef AUDIO_CACHE
|
#ifdef AUDIO_CACHE
|
||||||
cacheFile = fcaseopen("audio\\sound.cache", "wb");
|
cacheFile = fcaseopen("audio\\sound.cache", "wb");
|
||||||
fwrite(nStreamLength, sizeof(uint32), TOTAL_STREAMED_SOUNDS, cacheFile);
|
if(cacheFile) {
|
||||||
fclose(cacheFile);
|
debug("Saving audio cache\n");
|
||||||
#endif
|
fwrite(nStreamLength, sizeof(uint32), TOTAL_STREAMED_SOUNDS, cacheFile);
|
||||||
|
fclose(cacheFile);
|
||||||
|
} else {
|
||||||
|
debug("Cannot save audio cache\n");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
{
|
{
|
||||||
if ( !InitialiseSampleBanks() )
|
if ( !InitialiseSampleBanks() )
|
||||||
|
|
|
@ -393,7 +393,7 @@ CGameLogic::RestorePlayerStuffDuringResurrection(CPlayerPed *pPlayerPed, CVector
|
||||||
CWorld::Add(pPlayerPed);
|
CWorld::Add(pPlayerPed);
|
||||||
CHud::ResetWastedText();
|
CHud::ResetWastedText();
|
||||||
CStreaming::StreamZoneModels(pos);
|
CStreaming::StreamZoneModels(pos);
|
||||||
clearWaterDrop = true;
|
//clearWaterDrop = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -605,10 +605,9 @@ public:
|
||||||
|
|
||||||
float LimitAngleOnCircle(float angle) { return angle < 0.0f ? angle + 360.0f : angle; }
|
float LimitAngleOnCircle(float angle) { return angle < 0.0f ? angle + 360.0f : angle; }
|
||||||
|
|
||||||
|
bool ThisIsAValidRandomCop(uint32 mi, int cop, int swat, int fbi, int army, int miami);
|
||||||
bool ThisIsAValidRandomPed(uint32 pedtype, int civ, int gang, int criminal);
|
bool ThisIsAValidRandomPed(uint32 pedtype, int civ, int gang, int criminal);
|
||||||
bool CheckDamagedWeaponType(int32 actual, int32 type);
|
bool CheckDamagedWeaponType(int32 actual, int32 type);
|
||||||
static bool ThisIsAValidRandomCop(int32 mi, bool cop, bool swat, bool fbi, bool army, bool miami);
|
|
||||||
|
|
||||||
void ReturnFromGosubOrFunction();
|
void ReturnFromGosubOrFunction();
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -42,6 +42,19 @@
|
||||||
extern const char* scriptfile;
|
extern const char* scriptfile;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
bool CRunningScript::ThisIsAValidRandomCop(uint32 mi, int cop, int swat, int fbi, int army, int miami)
|
||||||
|
{
|
||||||
|
switch (mi)
|
||||||
|
{
|
||||||
|
case MI_COP: if (cop) return true; break;
|
||||||
|
case MI_SWAT: if (swat) return true; break;
|
||||||
|
case MI_FBI: if (fbi) return true; break;
|
||||||
|
case MI_ARMY: if (army) return true; break;
|
||||||
|
default: if (mi >= MI_VICE1 && mi <= MI_VICE8 && miami) return true; break;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
bool CRunningScript::ThisIsAValidRandomPed(uint32 pedtype, int civ, int gang, int criminal)
|
bool CRunningScript::ThisIsAValidRandomPed(uint32 pedtype, int civ, int gang, int criminal)
|
||||||
{
|
{
|
||||||
switch (pedtype) {
|
switch (pedtype) {
|
||||||
|
@ -66,19 +79,6 @@ bool CRunningScript::ThisIsAValidRandomPed(uint32 pedtype, int civ, int gang, in
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CRunningScript::ThisIsAValidRandomCop(int32 mi, bool cop, bool swat, bool fbi, bool army, bool miami)
|
|
||||||
{
|
|
||||||
switch (mi)
|
|
||||||
{
|
|
||||||
case MI_COP: if (cop) return true;
|
|
||||||
case MI_SWAT: if (swat) return true;
|
|
||||||
case MI_FBI: if (fbi) return true;
|
|
||||||
case MI_ARMY: if (army) return true;
|
|
||||||
default:
|
|
||||||
return miami && (mi >= MI_VICE1 && mi <= MI_VICE8);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
int8 CRunningScript::ProcessCommands1000To1099(int32 command)
|
int8 CRunningScript::ProcessCommands1000To1099(int32 command)
|
||||||
{
|
{
|
||||||
switch (command) {
|
switch (command) {
|
||||||
|
|
|
@ -76,7 +76,7 @@
|
||||||
|
|
||||||
GlobalScene Scene;
|
GlobalScene Scene;
|
||||||
|
|
||||||
uint8 work_buff[55000];
|
uint8 work_buff[102400];
|
||||||
char gString[256];
|
char gString[256];
|
||||||
char gString2[512];
|
char gString2[512];
|
||||||
wchar gUString[256];
|
wchar gUString[256];
|
||||||
|
|
|
@ -7,7 +7,7 @@ struct GlobalScene
|
||||||
};
|
};
|
||||||
extern GlobalScene Scene;
|
extern GlobalScene Scene;
|
||||||
|
|
||||||
extern uint8 work_buff[55000];
|
extern uint8 work_buff[102400];
|
||||||
extern char gString[256];
|
extern char gString[256];
|
||||||
extern char gString2[512];
|
extern char gString2[512];
|
||||||
extern wchar gUString[256];
|
extern wchar gUString[256];
|
||||||
|
|
|
@ -1108,6 +1108,7 @@ CVehicleModelInfo::SetEnvironmentMapCB(RpAtomic *atomic, void *data)
|
||||||
void
|
void
|
||||||
CVehicleModelInfo::SetEnvironmentMap(void)
|
CVehicleModelInfo::SetEnvironmentMap(void)
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
CSimpleModelInfo *wheelmi;
|
CSimpleModelInfo *wheelmi;
|
||||||
int32 i;
|
int32 i;
|
||||||
|
|
||||||
|
@ -1125,6 +1126,7 @@ CVehicleModelInfo::SetEnvironmentMap(void)
|
||||||
for(i = 0; i < wheelmi->m_numAtomics; i++)
|
for(i = 0; i < wheelmi->m_numAtomics; i++)
|
||||||
SetEnvironmentMapCB(wheelmi->m_atomics[i], nil);
|
SetEnvironmentMapCB(wheelmi->m_atomics[i], nil);
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
#ifdef EXTENDED_PIPELINES
|
#ifdef EXTENDED_PIPELINES
|
||||||
CustomPipes::AttachVehiclePipe(m_clump);
|
CustomPipes::AttachVehiclePipe(m_clump);
|
||||||
|
@ -1139,21 +1141,23 @@ CVehicleModelInfo::LoadEnvironmentMaps(void)
|
||||||
txdslot = CTxdStore::FindTxdSlot("particle");
|
txdslot = CTxdStore::FindTxdSlot("particle");
|
||||||
CTxdStore::PushCurrentTxd();
|
CTxdStore::PushCurrentTxd();
|
||||||
CTxdStore::SetCurrentTxd(txdslot);
|
CTxdStore::SetCurrentTxd(txdslot);
|
||||||
if(gpWhiteTexture == nil){
|
/*if(gpWhiteTexture == nil){
|
||||||
gpWhiteTexture = RwTextureRead("white", nil);
|
gpWhiteTexture = RwTextureRead("white", nil);
|
||||||
RwTextureGetName(gpWhiteTexture)[0] = '@';
|
RwTextureGetName(gpWhiteTexture)[0] = '@';
|
||||||
RwTextureSetFilterMode(gpWhiteTexture, rwFILTERLINEAR);
|
RwTextureSetFilterMode(gpWhiteTexture, rwFILTERLINEAR);
|
||||||
}
|
}*/
|
||||||
CTxdStore::PopCurrentTxd();
|
CTxdStore::PopCurrentTxd();
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
CVehicleModelInfo::ShutdownEnvironmentMaps(void)
|
CVehicleModelInfo::ShutdownEnvironmentMaps(void)
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
RwTextureDestroy(gpWhiteTexture);
|
RwTextureDestroy(gpWhiteTexture);
|
||||||
gpWhiteTexture = nil;
|
gpWhiteTexture = nil;
|
||||||
RwFrameDestroy(pMatFxIdentityFrame);
|
RwFrameDestroy(pMatFxIdentityFrame);
|
||||||
pMatFxIdentityFrame = nil;
|
pMatFxIdentityFrame = nil;
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
|
@ -50,7 +50,7 @@ UnicodeMakeUpperCase(wchar *dst, const wchar *src) //idk what to do with it, see
|
||||||
}
|
}
|
||||||
|
|
||||||
CFontDetails CFont::Details;
|
CFontDetails CFont::Details;
|
||||||
int16 CFont::NewLine;
|
bool16 CFont::NewLine;
|
||||||
CSprite2d CFont::Sprite[MAX_FONTS];
|
CSprite2d CFont::Sprite[MAX_FONTS];
|
||||||
CFontRenderState CFont::RenderState;
|
CFontRenderState CFont::RenderState;
|
||||||
|
|
||||||
|
@ -274,7 +274,7 @@ CFont::InitPerFrame(void)
|
||||||
Details.anonymous_25 = 0;
|
Details.anonymous_25 = 0;
|
||||||
FontRenderStatePointer.pRenderState = (CFontRenderState*)FontRenderStateBuf;
|
FontRenderStatePointer.pRenderState = (CFontRenderState*)FontRenderStateBuf;
|
||||||
SetDropShadowPosition(0);
|
SetDropShadowPosition(0);
|
||||||
NewLine = 0;
|
NewLine = false;
|
||||||
#ifdef BUTTON_ICONS
|
#ifdef BUTTON_ICONS
|
||||||
PS2Symbol = BUTTON_NONE;
|
PS2Symbol = BUTTON_NONE;
|
||||||
#endif
|
#endif
|
||||||
|
@ -1277,7 +1277,7 @@ CFont::ParseToken(wchar *s)
|
||||||
break;
|
break;
|
||||||
case 'N':
|
case 'N':
|
||||||
case 'n':
|
case 'n':
|
||||||
NewLine = 1;
|
NewLine = true;
|
||||||
break;
|
break;
|
||||||
case 'b':
|
case 'b':
|
||||||
Details.color.r = 27;
|
Details.color.r = 27;
|
||||||
|
|
|
@ -55,10 +55,10 @@ struct CFontRenderState
|
||||||
float slant;
|
float slant;
|
||||||
float slantRefX;
|
float slantRefX;
|
||||||
float slantRefY;
|
float slantRefY;
|
||||||
bool bIsShadow;
|
bool8 bIsShadow;
|
||||||
bool bFontHalfTexture;
|
bool8 bFontHalfTexture;
|
||||||
bool proportional;
|
bool8 proportional;
|
||||||
bool anonymous_14;
|
bool8 anonymous_14;
|
||||||
int16 style;
|
int16 style;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -126,7 +126,7 @@ class CFont
|
||||||
#else
|
#else
|
||||||
static int16 Size[MAX_FONTS][419];
|
static int16 Size[MAX_FONTS][419];
|
||||||
#endif
|
#endif
|
||||||
static int16 NewLine;
|
static bool16 NewLine;
|
||||||
public:
|
public:
|
||||||
static CSprite2d Sprite[MAX_FONTS];
|
static CSprite2d Sprite[MAX_FONTS];
|
||||||
static CFontDetails Details;
|
static CFontDetails Details;
|
||||||
|
@ -169,7 +169,7 @@ public:
|
||||||
static uint16 *ParseToken(wchar *s, bool japShit = false);
|
static uint16 *ParseToken(wchar *s, bool japShit = false);
|
||||||
#else
|
#else
|
||||||
static uint16 *ParseToken(wchar *s);
|
static uint16 *ParseToken(wchar *s);
|
||||||
static uint16* ParseToken(wchar *s, CRGBA &color, bool &flash, bool &bold);
|
static uint16 *ParseToken(wchar *s, CRGBA &color, bool &flash, bool &bold);
|
||||||
#endif
|
#endif
|
||||||
static void DrawFonts(void);
|
static void DrawFonts(void);
|
||||||
static void RenderFontBuffer(void);
|
static void RenderFontBuffer(void);
|
||||||
|
|
|
@ -591,6 +591,8 @@ CMBlur::AddRenderFx(RwCamera *cam, RwRect *rect, float z, FxType type)
|
||||||
void
|
void
|
||||||
CMBlur::OverlayRenderFx(RwCamera *cam, RwRaster *frontBuf)
|
CMBlur::OverlayRenderFx(RwCamera *cam, RwRaster *frontBuf)
|
||||||
{
|
{
|
||||||
|
//TODO(LCS)
|
||||||
|
#if 0
|
||||||
bool drawWaterDrops = false;
|
bool drawWaterDrops = false;
|
||||||
RwIm2DVertex verts[4];
|
RwIm2DVertex verts[4];
|
||||||
int red = (0.75f*CTimeCycle::GetDirectionalRed() + CTimeCycle::GetAmbientRed())*0.55f * 255;
|
int red = (0.75f*CTimeCycle::GetDirectionalRed() + CTimeCycle::GetAmbientRed())*0.55f * 255;
|
||||||
|
@ -796,4 +798,5 @@ CMBlur::OverlayRenderFx(RwCamera *cam, RwRaster *frontBuf)
|
||||||
RwRenderStateSet(rwRENDERSTATEZTESTENABLE, (void*)FALSE);
|
RwRenderStateSet(rwRENDERSTATEZTESTENABLE, (void*)FALSE);
|
||||||
RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)FALSE);
|
RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)FALSE);
|
||||||
pBufVertCount = 0;
|
pBufVertCount = 0;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -18,11 +18,6 @@ public:
|
||||||
uint32 m_nTimeWhenWillBeDestroyed;
|
uint32 m_nTimeWhenWillBeDestroyed;
|
||||||
uint32 m_nTimeWhenColorWillBeChanged;
|
uint32 m_nTimeWhenColorWillBeChanged;
|
||||||
float m_fZGround;
|
float m_fZGround;
|
||||||
CVector m_vecParticleMovementOffset;
|
|
||||||
int16 m_nCurrentZRotation;
|
|
||||||
uint16 m_nZRotationTimer;
|
|
||||||
float m_fCurrentZRadius;
|
|
||||||
uint16 m_nZRadiusTimer;
|
|
||||||
uint8 m_nColorIntensity;
|
uint8 m_nColorIntensity;
|
||||||
uint8 m_nAlpha;
|
uint8 m_nAlpha;
|
||||||
float m_fSize;
|
float m_fSize;
|
||||||
|
@ -36,6 +31,14 @@ public:
|
||||||
RwRGBA m_Color;
|
RwRGBA m_Color;
|
||||||
CParticle *m_pNext;
|
CParticle *m_pNext;
|
||||||
|
|
||||||
|
//CVector m_vecParticleMovementOffset;
|
||||||
|
//int16 m_nCurrentZRotation;
|
||||||
|
//uint16 m_nZRotationTimer;
|
||||||
|
//float m_fCurrentZRadius;
|
||||||
|
//uint16 m_nZRadiusTimer;
|
||||||
|
|
||||||
|
int32 field_4C;
|
||||||
|
|
||||||
CParticle()
|
CParticle()
|
||||||
{
|
{
|
||||||
;
|
;
|
||||||
|
@ -97,12 +100,9 @@ public:
|
||||||
static void HandleShootableBirdsStuff(CEntity *entity, CVector const&camPos);
|
static void HandleShootableBirdsStuff(CEntity *entity, CVector const&camPos);
|
||||||
};
|
};
|
||||||
|
|
||||||
extern bool clearWaterDrop;
|
|
||||||
extern int32 numWaterDropOnScreen;
|
|
||||||
extern RwRaster *gpCarSplashRaster[];
|
extern RwRaster *gpCarSplashRaster[];
|
||||||
extern RwRaster *gpHeatHazeRaster;
|
extern RwRaster *gpHeatHazeRaster;
|
||||||
extern RwRaster *gpDotRaster;
|
|
||||||
extern RwRaster *gpRainDripRaster[];
|
extern RwRaster *gpRainDripRaster[];
|
||||||
extern RwRaster *gpRainDripDarkRaster[];
|
extern RwRaster *gpRainDripDarkRaster[];
|
||||||
|
|
||||||
VALIDATE_SIZE(CParticle, 0x58);
|
VALIDATE_SIZE(CParticle, 0x50);
|
||||||
|
|
|
@ -4,18 +4,30 @@
|
||||||
#include "FileMgr.h"
|
#include "FileMgr.h"
|
||||||
#include "ParticleMgr.h"
|
#include "ParticleMgr.h"
|
||||||
|
|
||||||
|
// --LCS: File done
|
||||||
|
|
||||||
cParticleSystemMgr mod_ParticleSystemManager;
|
cParticleSystemMgr mod_ParticleSystemManager;
|
||||||
|
|
||||||
const char *ParticleFilename = "PARTICLE.CFG";
|
const char *ParticleFilename = "PARTICLE.CFG";
|
||||||
|
|
||||||
cParticleSystemMgr::cParticleSystemMgr()
|
cParticleSystemMgr::cParticleSystemMgr()
|
||||||
{
|
{
|
||||||
memset(this, 0, sizeof(*this));
|
#ifdef FIX_BUGS
|
||||||
|
m_aParticles = nil;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
cParticleSystemMgr::~cParticleSystemMgr()
|
||||||
|
{
|
||||||
|
#ifdef FIX_BUGS
|
||||||
|
delete [] m_aParticles;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void cParticleSystemMgr::Initialise()
|
void cParticleSystemMgr::Initialise()
|
||||||
{
|
{
|
||||||
LoadParticleData();
|
if ( gMakeResources )
|
||||||
|
LoadParticleData();
|
||||||
|
|
||||||
for ( int32 i = 0; i < MAX_PARTICLES; i++ )
|
for ( int32 i = 0; i < MAX_PARTICLES; i++ )
|
||||||
m_aParticles[i].m_pParticles = nil;
|
m_aParticles[i].m_pParticles = nil;
|
||||||
|
@ -23,20 +35,30 @@ void cParticleSystemMgr::Initialise()
|
||||||
|
|
||||||
void cParticleSystemMgr::LoadParticleData()
|
void cParticleSystemMgr::LoadParticleData()
|
||||||
{
|
{
|
||||||
CFileMgr::SetDir("DATA");
|
#ifdef FIX_BUGS
|
||||||
CFileMgr::LoadFile(ParticleFilename, work_buff, ARRAY_SIZE(work_buff), "r");
|
delete [] m_aParticles;
|
||||||
|
#endif
|
||||||
|
m_aParticles = new tParticleSystemData[MAX_PARTICLES];
|
||||||
|
|
||||||
|
memset(m_aParticles, 0, sizeof(tParticleSystemData)*MAX_PARTICLES);
|
||||||
|
|
||||||
|
CFileMgr::SetDir("Data");
|
||||||
|
ssize_t len = CFileMgr::LoadFile(ParticleFilename, work_buff, ARRAY_SIZE(work_buff), "r");
|
||||||
CFileMgr::SetDir("");
|
CFileMgr::SetDir("");
|
||||||
|
|
||||||
|
ASSERT(!(len <= 0));
|
||||||
|
|
||||||
tParticleSystemData *entry = nil;
|
tParticleSystemData *entry = nil;
|
||||||
int32 type = PARTICLE_FIRST;
|
int32 type = PARTICLE_FIRST;
|
||||||
|
|
||||||
|
char *buffEnd = (char *)&work_buff[len];
|
||||||
char *lineStart = (char *)work_buff;
|
char *lineStart = (char *)work_buff;
|
||||||
char *lineEnd = lineStart + 1;
|
char *lineEnd = lineStart + 1;
|
||||||
|
|
||||||
char line[500];
|
char line[500];
|
||||||
char delims[4];
|
char delims[4];
|
||||||
|
|
||||||
while ( true )
|
while ( lineStart < buffEnd )
|
||||||
{
|
{
|
||||||
ASSERT(lineStart != nil);
|
ASSERT(lineStart != nil);
|
||||||
ASSERT(lineEnd != nil);
|
ASSERT(lineEnd != nil);
|
||||||
|
|
|
@ -124,15 +124,18 @@ class cParticleSystemMgr
|
||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
tParticleSystemData m_aParticles[MAX_PARTICLES];
|
tParticleSystemData *m_aParticles;//[MAX_PARTICLES];
|
||||||
|
|
||||||
cParticleSystemMgr();
|
cParticleSystemMgr();
|
||||||
|
#ifdef FIX_BUGS
|
||||||
|
~cParticleSystemMgr();
|
||||||
|
#endif
|
||||||
|
|
||||||
void Initialise();
|
void Initialise();
|
||||||
void LoadParticleData();
|
void LoadParticleData();
|
||||||
void RangeCheck(tParticleSystemData *pData) { }
|
void RangeCheck(tParticleSystemData *pData) { }
|
||||||
};
|
};
|
||||||
|
|
||||||
VALIDATE_SIZE(cParticleSystemMgr, 0x2FFC);
|
VALIDATE_SIZE(cParticleSystemMgr, 0x4);
|
||||||
|
|
||||||
extern cParticleSystemMgr mod_ParticleSystemManager;
|
extern cParticleSystemMgr mod_ParticleSystemManager;
|
||||||
|
|
|
@ -42,8 +42,6 @@ enum tParticleType
|
||||||
PARTICLE_RAIN_SPLASH_BIGGROW,
|
PARTICLE_RAIN_SPLASH_BIGGROW,
|
||||||
PARTICLE_RAIN_SPLASHUP,
|
PARTICLE_RAIN_SPLASHUP,
|
||||||
PARTICLE_WATERSPRAY,
|
PARTICLE_WATERSPRAY,
|
||||||
PARTICLE_WATERDROP,
|
|
||||||
PARTICLE_BLOODDROP,
|
|
||||||
PARTICLE_EXPLOSION_MEDIUM,
|
PARTICLE_EXPLOSION_MEDIUM,
|
||||||
PARTICLE_EXPLOSION_LARGE,
|
PARTICLE_EXPLOSION_LARGE,
|
||||||
PARTICLE_EXPLOSION_MFAST,
|
PARTICLE_EXPLOSION_MFAST,
|
||||||
|
@ -83,10 +81,11 @@ enum tParticleType
|
||||||
PARTICLE_SHIP_SIDE,
|
PARTICLE_SHIP_SIDE,
|
||||||
PARTICLE_BEASTIE,
|
PARTICLE_BEASTIE,
|
||||||
PARTICLE_RAINDROP_2D,
|
PARTICLE_RAINDROP_2D,
|
||||||
PARTICLE_HEATHAZE,
|
PARTICLE_FERRY_CHIM_SMOKE,
|
||||||
PARTICLE_HEATHAZE_IN_DIST,
|
PARTICLE_MULTIPLAYER_HIT,
|
||||||
|
PARTICLE_HYDRANT_STEAM,
|
||||||
|
|
||||||
MAX_PARTICLES,
|
MAX_PARTICLES,
|
||||||
PARTICLE_FIRST = PARTICLE_SPARK,
|
PARTICLE_FIRST = PARTICLE_SPARK,
|
||||||
PARTICLE_LAST = PARTICLE_HEATHAZE_IN_DIST
|
PARTICLE_LAST = PARTICLE_HYDRANT_STEAM
|
||||||
};
|
};
|
|
@ -76,14 +76,14 @@ CShadows::Init(void)
|
||||||
gpShadowBikeTex = RwTextureRead("shad_bike", nil);
|
gpShadowBikeTex = RwTextureRead("shad_bike", nil);
|
||||||
gpShadowBaronTex = RwTextureRead("shad_rcbaron", nil);
|
gpShadowBaronTex = RwTextureRead("shad_rcbaron", nil);
|
||||||
gpShadowExplosionTex = RwTextureRead("shad_exp", nil);
|
gpShadowExplosionTex = RwTextureRead("shad_exp", nil);
|
||||||
gpShadowHeadLightsTex = RwTextureRead("headlight", nil);
|
gpShadowHeadLightsTex = RwTextureRead("headlight_single", nil);
|
||||||
gpOutline1Tex = RwTextureRead("outline_64", nil);
|
gpOutline1Tex = RwTextureRead("outline_64", nil);
|
||||||
gpOutline2Tex = RwTextureRead("outline2_64", nil);
|
gpOutline2Tex = RwTextureRead("outline2_64", nil);
|
||||||
gpOutline3Tex = RwTextureRead("outline3_64", nil);
|
gpOutline3Tex = RwTextureRead("outline3_64", nil);
|
||||||
gpBloodPoolTex = RwTextureRead("bloodpool_64", nil);
|
gpBloodPoolTex = RwTextureRead("bloodpool_64", nil);
|
||||||
gpReflectionTex = RwTextureRead("reflection01", nil);
|
//gpReflectionTex = RwTextureRead("reflection01", nil);
|
||||||
gpWalkDontTex = RwTextureRead("walk_dont", nil);
|
gpWalkDontTex = RwTextureRead("walk_dont", nil);
|
||||||
gpCrackedGlassTex = RwTextureRead("wincrack_32", nil);
|
//gpCrackedGlassTex = RwTextureRead("wincrack_32", nil);
|
||||||
gpPostShadowTex = RwTextureRead("lamp_shad_64", nil);
|
gpPostShadowTex = RwTextureRead("lamp_shad_64", nil);
|
||||||
|
|
||||||
CTxdStore::PopCurrentTxd();
|
CTxdStore::PopCurrentTxd();
|
||||||
|
@ -99,9 +99,9 @@ CShadows::Init(void)
|
||||||
ASSERT(gpOutline2Tex != nil);
|
ASSERT(gpOutline2Tex != nil);
|
||||||
ASSERT(gpOutline3Tex != nil);
|
ASSERT(gpOutline3Tex != nil);
|
||||||
ASSERT(gpBloodPoolTex != nil);
|
ASSERT(gpBloodPoolTex != nil);
|
||||||
ASSERT(gpReflectionTex != nil);
|
//ASSERT(gpReflectionTex != nil);
|
||||||
ASSERT(gpWalkDontTex != nil);
|
ASSERT(gpWalkDontTex != nil);
|
||||||
ASSERT(gpCrackedGlassTex != nil);
|
//ASSERT(gpCrackedGlassTex != nil);
|
||||||
ASSERT(gpPostShadowTex != nil);
|
ASSERT(gpPostShadowTex != nil);
|
||||||
|
|
||||||
|
|
||||||
|
@ -178,9 +178,9 @@ CShadows::Shutdown(void)
|
||||||
ASSERT(gpOutline2Tex != nil);
|
ASSERT(gpOutline2Tex != nil);
|
||||||
ASSERT(gpOutline3Tex != nil);
|
ASSERT(gpOutline3Tex != nil);
|
||||||
ASSERT(gpBloodPoolTex != nil);
|
ASSERT(gpBloodPoolTex != nil);
|
||||||
ASSERT(gpReflectionTex != nil);
|
//ASSERT(gpReflectionTex != nil);
|
||||||
ASSERT(gpWalkDontTex != nil);
|
ASSERT(gpWalkDontTex != nil);
|
||||||
ASSERT(gpCrackedGlassTex != nil);
|
//ASSERT(gpCrackedGlassTex != nil);
|
||||||
ASSERT(gpPostShadowTex != nil);
|
ASSERT(gpPostShadowTex != nil);
|
||||||
|
|
||||||
RwTextureDestroy(gpShadowCarTex);
|
RwTextureDestroy(gpShadowCarTex);
|
||||||
|
@ -194,9 +194,9 @@ CShadows::Shutdown(void)
|
||||||
RwTextureDestroy(gpOutline2Tex);
|
RwTextureDestroy(gpOutline2Tex);
|
||||||
RwTextureDestroy(gpOutline3Tex);
|
RwTextureDestroy(gpOutline3Tex);
|
||||||
RwTextureDestroy(gpBloodPoolTex);
|
RwTextureDestroy(gpBloodPoolTex);
|
||||||
RwTextureDestroy(gpReflectionTex);
|
//RwTextureDestroy(gpReflectionTex);
|
||||||
RwTextureDestroy(gpWalkDontTex);
|
RwTextureDestroy(gpWalkDontTex);
|
||||||
RwTextureDestroy(gpCrackedGlassTex);
|
//RwTextureDestroy(gpCrackedGlassTex);
|
||||||
RwTextureDestroy(gpPostShadowTex);
|
RwTextureDestroy(gpPostShadowTex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,19 @@ float CSprite::m_f2DFarScreenZ;
|
||||||
float CSprite::m_fRecipNearClipPlane;
|
float CSprite::m_fRecipNearClipPlane;
|
||||||
int32 CSprite::m_bFlushSpriteBufferSwitchZTest;
|
int32 CSprite::m_bFlushSpriteBufferSwitchZTest;
|
||||||
|
|
||||||
|
float CalcScreenZ(float z)
|
||||||
|
{
|
||||||
|
// LCS TODO: check
|
||||||
|
|
||||||
|
if ( z == 0.0f )
|
||||||
|
return CSprite::GetNearScreenZ();
|
||||||
|
|
||||||
|
return (z - CDraw::GetNearClipZ())
|
||||||
|
* (CSprite::GetFarScreenZ() - CSprite::GetNearScreenZ()) * CDraw::GetFarClipZ()
|
||||||
|
/ ( (CDraw::GetFarClipZ() - CDraw::GetNearClipZ()) * z )
|
||||||
|
+ CSprite::GetNearScreenZ();
|
||||||
|
}
|
||||||
|
|
||||||
float
|
float
|
||||||
CSprite::CalcHorizonCoors(void)
|
CSprite::CalcHorizonCoors(void)
|
||||||
{
|
{
|
||||||
|
|
|
@ -29,3 +29,5 @@ public:
|
||||||
static void RenderBufferedOneXLUSprite2D_Rotate_Dimension(float x, float y, float w, float h, const RwRGBA &colour, int16 intens, float rotation, uint8 alpha);
|
static void RenderBufferedOneXLUSprite2D_Rotate_Dimension(float x, float y, float w, float h, const RwRGBA &colour, int16 intens, float rotation, uint8 alpha);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
extern float CalcScreenZ(float z);
|
|
@ -330,6 +330,7 @@ void CWeather::Update(void)
|
||||||
|
|
||||||
void CWeather::AddHeatHaze()
|
void CWeather::AddHeatHaze()
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
if(TheCamera.Cams[TheCamera.ActiveCam].Mode == CCam::MODE_TOPDOWN ||
|
if(TheCamera.Cams[TheCamera.ActiveCam].Mode == CCam::MODE_TOPDOWN ||
|
||||||
TheCamera.Cams[TheCamera.ActiveCam].Mode == CCam::MODE_TOP_DOWN_PED)
|
TheCamera.Cams[TheCamera.ActiveCam].Mode == CCam::MODE_TOP_DOWN_PED)
|
||||||
return;
|
return;
|
||||||
|
@ -341,6 +342,7 @@ void CWeather::AddHeatHaze()
|
||||||
pos.y = CGeneral::GetRandomNumberInRange(SCREEN_HEIGHT*0.4f, SCREEN_HEIGHT*0.9f);
|
pos.y = CGeneral::GetRandomNumberInRange(SCREEN_HEIGHT*0.4f, SCREEN_HEIGHT*0.9f);
|
||||||
pos.z = 100.0f;
|
pos.z = 100.0f;
|
||||||
CParticle::AddParticle(PARTICLE_HEATHAZE_IN_DIST, pos, CVector(0.0f, 0.0f, 0.0f));
|
CParticle::AddParticle(PARTICLE_HEATHAZE_IN_DIST, pos, CVector(0.0f, 0.0f, 0.0f));
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
void CWeather::AddBeastie()
|
void CWeather::AddBeastie()
|
||||||
|
|
|
@ -2037,6 +2037,7 @@ CAutomobile::PreRender(void)
|
||||||
if(DotProduct(GetForward(), camDist) > 0.0f ||
|
if(DotProduct(GetForward(), camDist) > 0.0f ||
|
||||||
TheCamera.GetLookDirection() == LOOKING_LEFT ||
|
TheCamera.GetLookDirection() == LOOKING_LEFT ||
|
||||||
TheCamera.GetLookDirection() == LOOKING_RIGHT){
|
TheCamera.GetLookDirection() == LOOKING_RIGHT){
|
||||||
|
/*
|
||||||
CParticle::AddParticle(PARTICLE_HEATHAZE, pos1, CVector(0.0f, 0.0f, 0.0f));
|
CParticle::AddParticle(PARTICLE_HEATHAZE, pos1, CVector(0.0f, 0.0f, 0.0f));
|
||||||
if(pHandling->Flags & HANDLING_DBL_EXHAUST)
|
if(pHandling->Flags & HANDLING_DBL_EXHAUST)
|
||||||
CParticle::AddParticle(PARTICLE_HEATHAZE, pos2, CVector(0.0f, 0.0f, 0.0f));
|
CParticle::AddParticle(PARTICLE_HEATHAZE, pos2, CVector(0.0f, 0.0f, 0.0f));
|
||||||
|
@ -2044,6 +2045,7 @@ CAutomobile::PreRender(void)
|
||||||
CParticle::AddParticle(PARTICLE_HEATHAZE, pos1, CVector(0.0f, 0.0f, 0.0f));
|
CParticle::AddParticle(PARTICLE_HEATHAZE, pos1, CVector(0.0f, 0.0f, 0.0f));
|
||||||
if(pHandling->Flags & HANDLING_DBL_EXHAUST)
|
if(pHandling->Flags & HANDLING_DBL_EXHAUST)
|
||||||
CParticle::AddParticle(PARTICLE_HEATHAZE, pos2, CVector(0.0f, 0.0f, 0.0f));
|
CParticle::AddParticle(PARTICLE_HEATHAZE, pos2, CVector(0.0f, 0.0f, 0.0f));
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1724,7 +1724,7 @@ CBike::PreRender(void)
|
||||||
TheCamera.GetLookDirection() == LOOKING_RIGHT)
|
TheCamera.GetLookDirection() == LOOKING_RIGHT)
|
||||||
pos1 -= 0.2f*GetForward();
|
pos1 -= 0.2f*GetForward();
|
||||||
|
|
||||||
CParticle::AddParticle(PARTICLE_HEATHAZE, pos1, CVector(0.0f, 0.0f, 0.0f));
|
//CParticle::AddParticle(PARTICLE_HEATHAZE, pos1, CVector(0.0f, 0.0f, 0.0f));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -682,6 +682,7 @@ CBoat::ProcessControl(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Spray waterdrops on screen
|
// Spray waterdrops on screen
|
||||||
|
/*
|
||||||
if(TheCamera.GetLookingForwardFirstPerson() && FindPlayerVehicle() && FindPlayerVehicle()->IsBoat() &&
|
if(TheCamera.GetLookingForwardFirstPerson() && FindPlayerVehicle() && FindPlayerVehicle()->IsBoat() &&
|
||||||
m_nDeltaVolumeUnderWater > 0 && numWaterDropOnScreen < 20){
|
m_nDeltaVolumeUnderWater > 0 && numWaterDropOnScreen < 20){
|
||||||
CVector dropPos;
|
CVector dropPos;
|
||||||
|
@ -712,7 +713,7 @@ CBoat::ProcessControl(void)
|
||||||
if(CParticle::AddParticle(PARTICLE_WATERDROP, dropPos, dropDir, nil,
|
if(CParticle::AddParticle(PARTICLE_WATERDROP, dropPos, dropDir, nil,
|
||||||
CGeneral::GetRandomNumberInRange(0.1f, 0.15f), dropColor, 0, 0, frm))
|
CGeneral::GetRandomNumberInRange(0.1f, 0.15f), dropColor, 0, 0, frm))
|
||||||
numWaterDropOnScreen++;
|
numWaterDropOnScreen++;
|
||||||
}
|
}*/
|
||||||
|
|
||||||
if(m_fPrevVolumeUnderWater == 0.0f && m_fVolumeUnderWater > 0.0f && GetModelIndex() == MI_SKIMMER){
|
if(m_fPrevVolumeUnderWater == 0.0f && m_fVolumeUnderWater > 0.0f && GetModelIndex() == MI_SKIMMER){
|
||||||
CVector splashDir(0.0f, 0.0f, 0.25f*speed);
|
CVector splashDir(0.0f, 0.0f, 0.25f*speed);
|
||||||
|
|
|
@ -645,9 +645,9 @@ CWeapon::FireMelee(CEntity *shooter, CVector &fireSource)
|
||||||
CVector dropDir(CGeneral::GetRandomNumberInRange(-0.15f, 0.15f), CGeneral::GetRandomNumberInRange(0.1f, 0.35f), 0.f);
|
CVector dropDir(CGeneral::GetRandomNumberInRange(-0.15f, 0.15f), CGeneral::GetRandomNumberInRange(0.1f, 0.35f), 0.f);
|
||||||
CVector dropPos(CGeneral::GetRandomNumberInRange(SCREEN_STRETCH_X(50.0f), SCREEN_STRETCH_FROM_RIGHT(50.0f)),
|
CVector dropPos(CGeneral::GetRandomNumberInRange(SCREEN_STRETCH_X(50.0f), SCREEN_STRETCH_FROM_RIGHT(50.0f)),
|
||||||
CGeneral::GetRandomNumberInRange(SCREEN_STRETCH_Y(50.0f), SCREEN_STRETCH_FROM_BOTTOM(50.0f)), 1.f);
|
CGeneral::GetRandomNumberInRange(SCREEN_STRETCH_Y(50.0f), SCREEN_STRETCH_FROM_BOTTOM(50.0f)), 1.f);
|
||||||
CParticle::AddParticle(PARTICLE_BLOODDROP, dropPos, dropDir, nil, CGeneral::GetRandomNumberInRange(0.1f, 0.15f),
|
/*CParticle::AddParticle(PARTICLE_BLOODDROP, dropPos, dropDir, nil, CGeneral::GetRandomNumberInRange(0.1f, 0.15f),
|
||||||
CRGBA(0, 0, 0, 0), 0, 0, CGeneral::GetRandomNumber() & 1, 0);
|
CRGBA(0, 0, 0, 0), 0, 0, CGeneral::GetRandomNumber() & 1, 0);
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
if (info->m_AnimToPlay == ASSOCGRP_KNIFE)
|
if (info->m_AnimToPlay == ASSOCGRP_KNIFE)
|
||||||
{
|
{
|
||||||
|
@ -737,7 +737,7 @@ CWeapon::FireMelee(CEntity *shooter, CVector &fireSource)
|
||||||
{
|
{
|
||||||
nearCar->VehicleDamage(info->m_nDamage * (0.00075f * nearCar->pHandling->fMass), gaTempSphereColPoints[0].pieceB);
|
nearCar->VehicleDamage(info->m_nDamage * (0.00075f * nearCar->pHandling->fMass), gaTempSphereColPoints[0].pieceB);
|
||||||
|
|
||||||
CParticle::AddParticle(PARTICLE_HEATHAZE, gaTempSphereColPoints[0].point, CVector(0.0f, 0.0f, 0.0f), 0, 0.0f, 0, 0, 0, 0);
|
//CParticle::AddParticle(PARTICLE_HEATHAZE, gaTempSphereColPoints[0].point, CVector(0.0f, 0.0f, 0.0f), 0, 0.0f, 0, 0, 0, 0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -814,7 +814,7 @@ CWeapon::FireMelee(CEntity *shooter, CVector &fireSource)
|
||||||
CParticle::AddParticle(PARTICLE_SPARK, gaTempSphereColPoints[0].point, 0.1f * gaTempSphereColPoints[0].normal, 0, 0.0f, 0, 0, 0, 0);
|
CParticle::AddParticle(PARTICLE_SPARK, gaTempSphereColPoints[0].point, 0.1f * gaTempSphereColPoints[0].normal, 0, 0.0f, 0, 0, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
CParticle::AddParticle(PARTICLE_HEATHAZE, gaTempSphereColPoints[0].point, CVector(0.0f, 0.0f, 0.0f), 0, 0.0f, 0, 0, 0, 0);
|
//CParticle::AddParticle(PARTICLE_HEATHAZE, gaTempSphereColPoints[0].point, CVector(0.0f, 0.0f, 0.0f), 0, 0.0f, 0, 0, 0, 0);
|
||||||
|
|
||||||
if (!damageEntityRegistered)
|
if (!damageEntityRegistered)
|
||||||
{
|
{
|
||||||
|
|
2
vendor/librw
vendored
2
vendor/librw
vendored
|
@ -1 +1 @@
|
||||||
Subproject commit 78d540fce0ca090b07377cee40d73eadfb7a699d
|
Subproject commit 61b288a9fe72ae4073c0ac5fd2a5815ed510c8c8
|
143
vendor/milessdk/include/mss.h
vendored
143
vendor/milessdk/include/mss.h
vendored
|
@ -56,75 +56,86 @@ typedef struct _AILSOUNDINFO
|
||||||
void const *initial_ptr;
|
void const *initial_ptr;
|
||||||
} AILSOUNDINFO;
|
} AILSOUNDINFO;
|
||||||
|
|
||||||
#define DLLEXPORT extern "C" __declspec(dllexport)
|
typedef U32 (WINAPI *AIL_file_open_callback)(char const * Filename, U32 * FileHandle);
|
||||||
|
|
||||||
DLLEXPORT S32 WINAPI AIL_enumerate_3D_providers(HPROENUM *next, HPROVIDER *dest, C8 **name);
|
typedef void (WINAPI *AIL_file_close_callback)(U32 FileHandle);
|
||||||
DLLEXPORT void WINAPI AIL_release_3D_sample_handle(H3DSAMPLE S);
|
|
||||||
DLLEXPORT void WINAPI AIL_close_3D_provider(HPROVIDER lib);
|
|
||||||
DLLEXPORT void WINAPI AIL_set_3D_provider_preference(HPROVIDER lib, C8 const *name, void const *val);
|
|
||||||
DLLEXPORT M3DRESULT WINAPI AIL_open_3D_provider(HPROVIDER lib);
|
|
||||||
DLLEXPORT C8 *WINAPI AIL_last_error(void);
|
|
||||||
DLLEXPORT S32 WINAPI AIL_3D_room_type(HPROVIDER lib);
|
|
||||||
DLLEXPORT void WINAPI AIL_set_3D_room_type(HPROVIDER lib, S32 room_type);
|
|
||||||
DLLEXPORT void WINAPI AIL_3D_provider_attribute(HPROVIDER lib, C8 const *name, void *val);
|
|
||||||
DLLEXPORT H3DSAMPLE WINAPI AIL_allocate_3D_sample_handle(HPROVIDER lib);
|
|
||||||
DLLEXPORT void WINAPI AIL_set_3D_sample_effects_level(H3DSAMPLE S, F32 effects_level);
|
|
||||||
DLLEXPORT void WINAPI AIL_set_3D_speaker_type(HPROVIDER lib, S32 speaker_type);
|
|
||||||
DLLEXPORT HSTREAM WINAPI AIL_open_stream(HDIGDRIVER dig, C8 const *filename, S32 stream_mem);
|
|
||||||
DLLEXPORT void WINAPI AIL_stream_ms_position(HSTREAM S, S32 *total_milliseconds, S32 *current_milliseconds);
|
|
||||||
DLLEXPORT void WINAPI AIL_close_stream(HSTREAM stream);
|
|
||||||
DLLEXPORT S32 WINAPI AIL_digital_handle_release(HDIGDRIVER drvr);
|
|
||||||
DLLEXPORT S32 WINAPI AIL_digital_handle_reacquire(HDIGDRIVER drvr);
|
|
||||||
DLLEXPORT C8 *WINAPI AIL_set_redist_directory(C8 const *dir);
|
|
||||||
DLLEXPORT S32 WINAPI AIL_startup(void);
|
|
||||||
DLLEXPORT S32 WINAPI AIL_set_preference(U32 number, S32 value);
|
|
||||||
DLLEXPORT HDIGDRIVER WINAPI AIL_open_digital_driver(U32 frequency, S32 bits, S32 channel, U32 flags);
|
|
||||||
DLLEXPORT void *WINAPI AIL_mem_alloc_lock(U32 size);
|
|
||||||
DLLEXPORT HSAMPLE WINAPI AIL_allocate_sample_handle(HDIGDRIVER dig);
|
|
||||||
DLLEXPORT void WINAPI AIL_init_sample(HSAMPLE S);
|
|
||||||
DLLEXPORT void WINAPI AIL_set_sample_type(HSAMPLE S, S32 format, U32 flags);
|
|
||||||
DLLEXPORT void WINAPI AIL_pause_stream(HSTREAM stream, S32 onoff);
|
|
||||||
DLLEXPORT void WINAPI AIL_release_sample_handle(HSAMPLE S);
|
|
||||||
DLLEXPORT void WINAPI AIL_mem_free_lock(void *ptr);
|
|
||||||
DLLEXPORT void WINAPI AIL_close_digital_driver(HDIGDRIVER dig);
|
|
||||||
DLLEXPORT void WINAPI AIL_shutdown(void);
|
|
||||||
DLLEXPORT void WINAPI AIL_set_3D_sample_volume(H3DSAMPLE S, S32 volume);
|
|
||||||
DLLEXPORT void WINAPI AIL_set_sample_volume(HSAMPLE S, S32 volume);
|
|
||||||
DLLEXPORT void WINAPI AIL_set_sample_address(HSAMPLE S, void const *start, U32 len);
|
|
||||||
DLLEXPORT S32 WINAPI AIL_set_3D_sample_info(H3DSAMPLE S, AILSOUNDINFO const *info);
|
|
||||||
DLLEXPORT void WINAPI AIL_set_3D_position(H3DPOBJECT obj, F32 X, F32 Y, F32 Z);
|
|
||||||
DLLEXPORT void WINAPI AIL_set_3D_sample_distances(H3DSAMPLE S, F32 max_dist, F32 min_dist);
|
|
||||||
DLLEXPORT void WINAPI AIL_set_sample_pan(HSAMPLE S, S32 pan);
|
|
||||||
DLLEXPORT void WINAPI AIL_set_sample_playback_rate(HSAMPLE S, S32 playback_rate);
|
|
||||||
DLLEXPORT void WINAPI AIL_set_3D_sample_playback_rate(H3DSAMPLE S, S32 playback_rate);
|
|
||||||
DLLEXPORT void WINAPI AIL_set_sample_loop_block(HSAMPLE S, S32 loop_start_offset, S32 loop_end_offset);
|
|
||||||
DLLEXPORT void WINAPI AIL_set_3D_sample_loop_block(H3DSAMPLE S, S32 loop_start_offset, S32 loop_end_offset);
|
|
||||||
DLLEXPORT void WINAPI AIL_set_sample_loop_count(HSAMPLE S, S32 loop_count);
|
|
||||||
DLLEXPORT void WINAPI AIL_set_3D_sample_loop_count(H3DSAMPLE S, S32 loops);
|
|
||||||
DLLEXPORT U32 WINAPI AIL_sample_status(HSAMPLE S);
|
|
||||||
DLLEXPORT U32 WINAPI AIL_3D_sample_status(H3DSAMPLE S);
|
|
||||||
DLLEXPORT void WINAPI AIL_start_sample(HSAMPLE S);
|
|
||||||
DLLEXPORT void WINAPI AIL_start_3D_sample(H3DSAMPLE S);
|
|
||||||
DLLEXPORT void WINAPI AIL_end_sample(HSAMPLE S);
|
|
||||||
DLLEXPORT void WINAPI AIL_end_3D_sample(H3DSAMPLE S);
|
|
||||||
DLLEXPORT void WINAPI AIL_set_stream_loop_count(HSTREAM stream, S32 count);
|
|
||||||
DLLEXPORT S32 WINAPI AIL_service_stream(HSTREAM stream, S32 fillup);
|
|
||||||
DLLEXPORT void WINAPI AIL_start_stream(HSTREAM stream);
|
|
||||||
DLLEXPORT void WINAPI AIL_set_stream_ms_position(HSTREAM S, S32 milliseconds);
|
|
||||||
DLLEXPORT void WINAPI AIL_set_stream_volume(HSTREAM stream, S32 volume);
|
|
||||||
DLLEXPORT void WINAPI AIL_set_stream_pan(HSTREAM stream, S32 pan);
|
|
||||||
DLLEXPORT S32 WINAPI AIL_stream_status(HSTREAM stream);
|
|
||||||
|
|
||||||
typedef U32(WINAPI* AIL_file_open_callback)(char const * Filename, U32 * FileHandle);
|
#define AIL_FILE_SEEK_BEGIN 0
|
||||||
|
|
||||||
typedef void (WINAPI* AIL_file_close_callback) (U32 FileHandle);
|
|
||||||
|
|
||||||
#define AIL_FILE_SEEK_BEGIN 0
|
|
||||||
#define AIL_FILE_SEEK_CURRENT 1
|
#define AIL_FILE_SEEK_CURRENT 1
|
||||||
#define AIL_FILE_SEEK_END 2
|
#define AIL_FILE_SEEK_END 2
|
||||||
|
|
||||||
typedef S32(WINAPI* AIL_file_seek_callback) (U32 FileHandle, S32 Offset, U32 Type);
|
typedef S32(WINAPI *AIL_file_seek_callback)(U32 FileHandle, S32 Offset, U32 Type);
|
||||||
|
|
||||||
typedef U32(WINAPI* AIL_file_read_callback) (U32 FileHandle, void* Buffer, U32 Bytes);
|
typedef U32(WINAPI *AIL_file_read_callback)(U32 FileHandle, void* Buffer, U32 Bytes);
|
||||||
|
|
||||||
DLLEXPORT void WINAPI AIL_set_file_callbacks(AIL_file_open_callback opencb, AIL_file_close_callback closecb, AIL_file_seek_callback seekcb, AIL_file_read_callback readcb);
|
#ifdef RE3MSS_EXPORTS
|
||||||
|
#define RE3MSS_EXPORT __declspec(dllexport)
|
||||||
|
#else
|
||||||
|
#define RE3MSS_EXPORT __declspec(dllimport)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
RE3MSS_EXPORT S32 WINAPI AIL_enumerate_3D_providers(HPROENUM *next, HPROVIDER *dest, C8 **name);
|
||||||
|
RE3MSS_EXPORT void WINAPI AIL_release_3D_sample_handle(H3DSAMPLE S);
|
||||||
|
RE3MSS_EXPORT void WINAPI AIL_close_3D_provider(HPROVIDER lib);
|
||||||
|
RE3MSS_EXPORT void WINAPI AIL_set_3D_provider_preference(HPROVIDER lib, C8 const *name, void const *val);
|
||||||
|
RE3MSS_EXPORT M3DRESULT WINAPI AIL_open_3D_provider(HPROVIDER lib);
|
||||||
|
RE3MSS_EXPORT C8 *WINAPI AIL_last_error(void);
|
||||||
|
RE3MSS_EXPORT S32 WINAPI AIL_3D_room_type(HPROVIDER lib);
|
||||||
|
RE3MSS_EXPORT void WINAPI AIL_set_3D_room_type(HPROVIDER lib, S32 room_type);
|
||||||
|
RE3MSS_EXPORT void WINAPI AIL_3D_provider_attribute(HPROVIDER lib, C8 const *name, void *val);
|
||||||
|
RE3MSS_EXPORT H3DSAMPLE WINAPI AIL_allocate_3D_sample_handle(HPROVIDER lib);
|
||||||
|
RE3MSS_EXPORT void WINAPI AIL_set_3D_sample_effects_level(H3DSAMPLE S, F32 effects_level);
|
||||||
|
RE3MSS_EXPORT void WINAPI AIL_set_3D_speaker_type(HPROVIDER lib, S32 speaker_type);
|
||||||
|
RE3MSS_EXPORT HSTREAM WINAPI AIL_open_stream(HDIGDRIVER dig, C8 const *filename, S32 stream_mem);
|
||||||
|
RE3MSS_EXPORT void WINAPI AIL_stream_ms_position(HSTREAM S, S32 *total_milliseconds, S32 *current_milliseconds);
|
||||||
|
RE3MSS_EXPORT void WINAPI AIL_close_stream(HSTREAM stream);
|
||||||
|
RE3MSS_EXPORT S32 WINAPI AIL_digital_handle_release(HDIGDRIVER drvr);
|
||||||
|
RE3MSS_EXPORT S32 WINAPI AIL_digital_handle_reacquire(HDIGDRIVER drvr);
|
||||||
|
RE3MSS_EXPORT C8 *WINAPI AIL_set_redist_directory(C8 const *dir);
|
||||||
|
RE3MSS_EXPORT S32 WINAPI AIL_startup(void);
|
||||||
|
RE3MSS_EXPORT S32 WINAPI AIL_set_preference(U32 number, S32 value);
|
||||||
|
RE3MSS_EXPORT HDIGDRIVER WINAPI AIL_open_digital_driver(U32 frequency, S32 bits, S32 channel, U32 flags);
|
||||||
|
RE3MSS_EXPORT void *WINAPI AIL_mem_alloc_lock(U32 size);
|
||||||
|
RE3MSS_EXPORT HSAMPLE WINAPI AIL_allocate_sample_handle(HDIGDRIVER dig);
|
||||||
|
RE3MSS_EXPORT void WINAPI AIL_init_sample(HSAMPLE S);
|
||||||
|
RE3MSS_EXPORT void WINAPI AIL_set_sample_type(HSAMPLE S, S32 format, U32 flags);
|
||||||
|
RE3MSS_EXPORT void WINAPI AIL_pause_stream(HSTREAM stream, S32 onoff);
|
||||||
|
RE3MSS_EXPORT void WINAPI AIL_release_sample_handle(HSAMPLE S);
|
||||||
|
RE3MSS_EXPORT void WINAPI AIL_mem_free_lock(void *ptr);
|
||||||
|
RE3MSS_EXPORT void WINAPI AIL_close_digital_driver(HDIGDRIVER dig);
|
||||||
|
RE3MSS_EXPORT void WINAPI AIL_shutdown(void);
|
||||||
|
RE3MSS_EXPORT void WINAPI AIL_set_3D_sample_volume(H3DSAMPLE S, S32 volume);
|
||||||
|
RE3MSS_EXPORT void WINAPI AIL_set_sample_volume(HSAMPLE S, S32 volume);
|
||||||
|
RE3MSS_EXPORT void WINAPI AIL_set_sample_address(HSAMPLE S, void const *start, U32 len);
|
||||||
|
RE3MSS_EXPORT S32 WINAPI AIL_set_3D_sample_info(H3DSAMPLE S, AILSOUNDINFO const *info);
|
||||||
|
RE3MSS_EXPORT void WINAPI AIL_set_3D_position(H3DPOBJECT obj, F32 X, F32 Y, F32 Z);
|
||||||
|
RE3MSS_EXPORT void WINAPI AIL_set_3D_sample_distances(H3DSAMPLE S, F32 max_dist, F32 min_dist);
|
||||||
|
RE3MSS_EXPORT void WINAPI AIL_set_sample_pan(HSAMPLE S, S32 pan);
|
||||||
|
RE3MSS_EXPORT void WINAPI AIL_set_sample_playback_rate(HSAMPLE S, S32 playback_rate);
|
||||||
|
RE3MSS_EXPORT void WINAPI AIL_set_3D_sample_playback_rate(H3DSAMPLE S, S32 playback_rate);
|
||||||
|
RE3MSS_EXPORT void WINAPI AIL_set_sample_loop_block(HSAMPLE S, S32 loop_start_offset, S32 loop_end_offset);
|
||||||
|
RE3MSS_EXPORT void WINAPI AIL_set_3D_sample_loop_block(H3DSAMPLE S, S32 loop_start_offset, S32 loop_end_offset);
|
||||||
|
RE3MSS_EXPORT void WINAPI AIL_set_sample_loop_count(HSAMPLE S, S32 loop_count);
|
||||||
|
RE3MSS_EXPORT void WINAPI AIL_set_3D_sample_loop_count(H3DSAMPLE S, S32 loops);
|
||||||
|
RE3MSS_EXPORT U32 WINAPI AIL_sample_status(HSAMPLE S);
|
||||||
|
RE3MSS_EXPORT U32 WINAPI AIL_3D_sample_status(H3DSAMPLE S);
|
||||||
|
RE3MSS_EXPORT void WINAPI AIL_start_sample(HSAMPLE S);
|
||||||
|
RE3MSS_EXPORT void WINAPI AIL_start_3D_sample(H3DSAMPLE S);
|
||||||
|
RE3MSS_EXPORT void WINAPI AIL_end_sample(HSAMPLE S);
|
||||||
|
RE3MSS_EXPORT void WINAPI AIL_end_3D_sample(H3DSAMPLE S);
|
||||||
|
RE3MSS_EXPORT void WINAPI AIL_set_stream_loop_count(HSTREAM stream, S32 count);
|
||||||
|
RE3MSS_EXPORT S32 WINAPI AIL_service_stream(HSTREAM stream, S32 fillup);
|
||||||
|
RE3MSS_EXPORT void WINAPI AIL_start_stream(HSTREAM stream);
|
||||||
|
RE3MSS_EXPORT void WINAPI AIL_set_stream_ms_position(HSTREAM S, S32 milliseconds);
|
||||||
|
RE3MSS_EXPORT void WINAPI AIL_set_stream_volume(HSTREAM stream, S32 volume);
|
||||||
|
RE3MSS_EXPORT void WINAPI AIL_set_stream_pan(HSTREAM stream, S32 pan);
|
||||||
|
RE3MSS_EXPORT S32 WINAPI AIL_stream_status(HSTREAM stream);
|
||||||
|
RE3MSS_EXPORT void WINAPI AIL_set_file_callbacks(AIL_file_open_callback opencb, AIL_file_close_callback closecb, AIL_file_seek_callback seekcb, AIL_file_read_callback readcb);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
BIN
vendor/milessdk/lib/mss32.lib
vendored
BIN
vendor/milessdk/lib/mss32.lib
vendored
Binary file not shown.
Loading…
Reference in a new issue