From 188aab4196c1d9de0c1bf33be1114e7a0e11fd19 Mon Sep 17 00:00:00 2001 From: aap Date: Thu, 30 May 2019 21:24:47 +0200 Subject: implemented some higher level functions; added lots of stubs; switched top and bottom in CRect --- src/render/Coronas.cpp | 4 ++++ src/render/Coronas.h | 3 +++ src/render/Draw.cpp | 5 +++++ src/render/Draw.h | 5 +++++ src/render/Fluff.cpp | 5 +++++ src/render/Fluff.h | 7 +++++++ src/render/Font.cpp | 12 ++++++------ src/render/Glass.cpp | 17 +++++++++++++++++ src/render/Glass.h | 11 +++++++++++ src/render/Hud.cpp | 6 ++++++ src/render/Hud.h | 8 ++++++++ src/render/Lights.cpp | 2 +- src/render/Particle.cpp | 6 +++--- src/render/PointLights.cpp | 5 +++++ src/render/PointLights.h | 7 +++++++ src/render/Renderer.cpp | 8 ++++---- src/render/Rubbish.cpp | 5 +++++ src/render/Rubbish.h | 7 +++++++ src/render/Shadows.cpp | 4 ++++ src/render/Shadows.h | 4 +++- src/render/Skidmarks.cpp | 5 +++++ src/render/Skidmarks.h | 7 +++++++ src/render/SpecialFX.cpp | 5 +++++ src/render/SpecialFX.h | 7 +++++++ src/render/Sprite.cpp | 12 ++++++------ src/render/Sprite2d.cpp | 28 ++++++++++++++-------------- src/render/WaterCannon.cpp | 5 +++++ src/render/WaterCannon.h | 7 +++++++ src/render/WaterLevel.cpp | 5 +++++ src/render/WaterLevel.h | 7 +++++++ src/render/WeaponEffects.cpp | 5 +++++ src/render/WeaponEffects.h | 7 +++++++ 32 files changed, 196 insertions(+), 35 deletions(-) create mode 100644 src/render/Fluff.cpp create mode 100644 src/render/Fluff.h create mode 100644 src/render/Glass.cpp create mode 100644 src/render/Glass.h create mode 100644 src/render/Hud.cpp create mode 100644 src/render/Hud.h create mode 100644 src/render/PointLights.cpp create mode 100644 src/render/PointLights.h create mode 100644 src/render/Rubbish.cpp create mode 100644 src/render/Rubbish.h create mode 100644 src/render/Skidmarks.cpp create mode 100644 src/render/Skidmarks.h create mode 100644 src/render/SpecialFX.cpp create mode 100644 src/render/SpecialFX.h create mode 100644 src/render/WaterCannon.cpp create mode 100644 src/render/WaterCannon.h create mode 100644 src/render/WaterLevel.cpp create mode 100644 src/render/WaterLevel.h create mode 100644 src/render/WeaponEffects.cpp create mode 100644 src/render/WeaponEffects.h (limited to 'src/render') diff --git a/src/render/Coronas.cpp b/src/render/Coronas.cpp index 39b85246..ee3f3da1 100644 --- a/src/render/Coronas.cpp +++ b/src/render/Coronas.cpp @@ -1,4 +1,5 @@ #include "common.h" +#include "patcher.h" #include "Coronas.h" RwTexture **gpCoronaTexture = (RwTexture**)0x5FAF44; //[9] @@ -8,3 +9,6 @@ float &CCoronas::SunScreenX = *(float*)0x8F4358; float &CCoronas::SunScreenY = *(float*)0x8F4354; bool &CCoronas::bSmallMoon = *(bool*)0x95CD49; bool &CCoronas::SunBlockedByClouds = *(bool*)0x95CD73; + +WRAPPER void CCoronas::Render(void) { EAXJMP(0x4F8FB0); } +WRAPPER void CCoronas::RenderReflections(void) { EAXJMP(0x4F9B40); } diff --git a/src/render/Coronas.h b/src/render/Coronas.h index 4ec7dd3b..796983bd 100644 --- a/src/render/Coronas.h +++ b/src/render/Coronas.h @@ -10,4 +10,7 @@ public: static float &SunScreenX; static bool &bSmallMoon; static bool &SunBlockedByClouds; + + static void Render(void); + static void RenderReflections(void); }; diff --git a/src/render/Draw.cpp b/src/render/Draw.cpp index 6244c3fa..7c5a48ad 100644 --- a/src/render/Draw.cpp +++ b/src/render/Draw.cpp @@ -6,6 +6,11 @@ float &CDraw::ms_fNearClipZ = *(float*)0x8E2DC4; float &CDraw::ms_fFarClipZ = *(float*)0x9434F0; float &CDraw::ms_fFOV = *(float*)0x5FBC6C; +uint8 &CDraw::FadeValue = *(uint8*)0x95CD68; +uint8 &CDraw::FadeRed = *(uint8*)0x95CD90; +uint8 &CDraw::FadeGreen = *(uint8*)0x95CD71; +uint8 &CDraw::FadeBlue = *(uint8*)0x95CD53; + static float hFov2vFov(float hfov) { float w = SCREENW; diff --git a/src/render/Draw.h b/src/render/Draw.h index 84ec7ed3..408c41b0 100644 --- a/src/render/Draw.h +++ b/src/render/Draw.h @@ -7,6 +7,11 @@ private: static float &ms_fFarClipZ; static float &ms_fFOV; public: + static uint8 &FadeValue; + static uint8 &FadeRed; + static uint8 &FadeGreen; + static uint8 &FadeBlue; + static void SetNearClipZ(float nearclip) { ms_fNearClipZ = nearclip; } static float GetNearClipZ(void) { return ms_fNearClipZ; } static void SetFarClipZ(float farclip) { ms_fFarClipZ = farclip; } diff --git a/src/render/Fluff.cpp b/src/render/Fluff.cpp new file mode 100644 index 00000000..b1b8aa92 --- /dev/null +++ b/src/render/Fluff.cpp @@ -0,0 +1,5 @@ +#include "common.h" +#include "patcher.h" +#include "Fluff.h" + +WRAPPER void CMovingThings::Render(void) { EAXJMP(0x4FF210); } diff --git a/src/render/Fluff.h b/src/render/Fluff.h new file mode 100644 index 00000000..33532efa --- /dev/null +++ b/src/render/Fluff.h @@ -0,0 +1,7 @@ +#pragma once + +class CMovingThings +{ +public: + static void Render(void); +}; diff --git a/src/render/Font.cpp b/src/render/Font.cpp index b145bf38..2130fb95 100644 --- a/src/render/Font.cpp +++ b/src/render/Font.cpp @@ -341,22 +341,22 @@ CFont::GetTextRect(CRect *rect, float xstart, float ystart, uint16 *s) if(Details.backgroundOnlyText){ rect->left = xstart - maxlength/2 - 4.0f; rect->right = xstart + maxlength/2 + 4.0f; - rect->top = (32.0f * CFont::Details.scaleY * 0.5f + 2.0f * CFont::Details.scaleY) * numLines + + rect->bottom = (32.0f * CFont::Details.scaleY * 0.5f + 2.0f * CFont::Details.scaleY) * numLines + ystart + 2.0f; - rect->bottom = ystart - 2.0f; + rect->top = ystart - 2.0f; }else{ rect->left = xstart - Details.centreSize*0.5f - 4.0f; rect->right = xstart + Details.centreSize*0.5f + 4.0f; - rect->top = (32.0f * CFont::Details.scaleY * 0.5f + 2.0f * CFont::Details.scaleY) * numLines + + rect->bottom = (32.0f * CFont::Details.scaleY * 0.5f + 2.0f * CFont::Details.scaleY) * numLines + ystart + 2.0f; - rect->bottom = ystart - 2.0f; + rect->top = ystart - 2.0f; } }else{ rect->left = xstart - 4.0f; rect->right = Details.wrapX; // WTF? - rect->top = ystart - 4.0f + 4.0f; - rect->bottom = (32.0f * CFont::Details.scaleY * 0.5f + 2.0f * CFont::Details.scaleY) * numLines + + rect->bottom = ystart - 4.0f + 4.0f; + rect->top = (32.0f * CFont::Details.scaleY * 0.5f + 2.0f * CFont::Details.scaleY) * numLines + ystart + 2.0f + 2.0f; } } diff --git a/src/render/Glass.cpp b/src/render/Glass.cpp new file mode 100644 index 00000000..aba8f9e0 --- /dev/null +++ b/src/render/Glass.cpp @@ -0,0 +1,17 @@ +#include "common.h" +#include "patcher.h" +#include "Glass.h" + +WRAPPER void +CGlass::WindowRespondsToCollision(CEntity *ent, float amount, CVector speed, CVector point, bool foo) +{ + EAXJMP(0x503F10); +} + +WRAPPER void +CGlass::WindowRespondsToSoftCollision(CEntity *ent, float amount) +{ + EAXJMP(0x504630); +} + +WRAPPER void CGlass::Render(void) { EAXJMP(0x502350); } diff --git a/src/render/Glass.h b/src/render/Glass.h new file mode 100644 index 00000000..460c4548 --- /dev/null +++ b/src/render/Glass.h @@ -0,0 +1,11 @@ +#pragma once + +class CEntity; + +class CGlass +{ +public: + static void WindowRespondsToCollision(CEntity *ent, float amount, CVector speed, CVector point, bool foo); + static void WindowRespondsToSoftCollision(CEntity *ent, float amount); + static void Render(void); +}; diff --git a/src/render/Hud.cpp b/src/render/Hud.cpp new file mode 100644 index 00000000..f3211fd6 --- /dev/null +++ b/src/render/Hud.cpp @@ -0,0 +1,6 @@ +#include "common.h" +#include "patcher.h" +#include "Hud.h" + +WRAPPER void CHud::Draw(void) { EAXJMP(0x5052A0); } +WRAPPER void CHud::DrawAfterFade(void) { EAXJMP(0x509030); } diff --git a/src/render/Hud.h b/src/render/Hud.h new file mode 100644 index 00000000..72d3c6ad --- /dev/null +++ b/src/render/Hud.h @@ -0,0 +1,8 @@ +#pragma once + +class CHud +{ +public: + static void Draw(void); + static void DrawAfterFade(void); +}; diff --git a/src/render/Lights.cpp b/src/render/Lights.cpp index 6962af4d..7954a07d 100644 --- a/src/render/Lights.cpp +++ b/src/render/Lights.cpp @@ -7,7 +7,7 @@ #include "Coronas.h" #include "Weather.h" #include "CullZones.h" -#include "MenuManager.h" +#include "Frontend.h" RpLight *&pAmbient = *(RpLight**)0x885B6C; RpLight *&pDirect = *(RpLight**)0x880F7C; diff --git a/src/render/Particle.cpp b/src/render/Particle.cpp index 18ea4c6c..bd4f7696 100644 --- a/src/render/Particle.cpp +++ b/src/render/Particle.cpp @@ -1853,18 +1853,18 @@ void CParticle::AddYardieDoorSmoke(CVector const &vecPos, CMatrix const &matMatr } STARTPATCHES +return; // causes crash, out temporarily //InjectHook(0x50C410, &CParticle::ctor, PATCH_JUMP); //InjectHook(0x50C420, &CParticle::dtor, PATCH_JUMP); InjectHook(0x50C430, CParticle::ReloadConfig, PATCH_JUMP); InjectHook(0x50C570, CParticle::Initialise, PATCH_JUMP); InjectHook(0x50CF40, CParticle::Shutdown, PATCH_JUMP); //InjectHook(0x50D140, CParticle::AddParticle, PATCH_JUMP); - InjectHook(0x50D190, (CParticle* (__cdecl *)(tParticleType, CVector const&, CVector const&, CEntity*, float, RwRGBA const&, int, int, int, int))CParticle::AddParticle, PATCH_JUMP); + InjectHook(0x50D190, (CParticle *(*)(tParticleType, CVector const&, CVector const&, CEntity*, float, RwRGBA const&, int, int, int, int))CParticle::AddParticle, PATCH_JUMP); InjectHook(0x50DCF0, CParticle::Update, PATCH_JUMP); InjectHook(0x50EE20, CParticle::Render, PATCH_JUMP); InjectHook(0x50F6E0, CParticle::RemovePSystem, PATCH_JUMP); InjectHook(0x50F720, CParticle::RemoveParticle, PATCH_JUMP); InjectHook(0x50F760, CParticle::AddJetExplosion, PATCH_JUMP); InjectHook(0x50FAA0, CParticle::AddYardieDoorSmoke, PATCH_JUMP); - -ENDPATCHES \ No newline at end of file +ENDPATCHES diff --git a/src/render/PointLights.cpp b/src/render/PointLights.cpp new file mode 100644 index 00000000..8496d8aa --- /dev/null +++ b/src/render/PointLights.cpp @@ -0,0 +1,5 @@ +#include "common.h" +#include "patcher.h" +#include "PointLights.h" + +WRAPPER void CPointLights::RenderFogEffect(void) { EAXJMP(0x510C30); } diff --git a/src/render/PointLights.h b/src/render/PointLights.h new file mode 100644 index 00000000..d20fbb7e --- /dev/null +++ b/src/render/PointLights.h @@ -0,0 +1,7 @@ +#pragma once + +class CPointLights +{ +public: + static void RenderFogEffect(void); +}; diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp index f8703c01..70002dcf 100644 --- a/src/render/Renderer.cpp +++ b/src/render/Renderer.cpp @@ -602,9 +602,9 @@ CRenderer::ScanWorld(void) if(x1 < 0) x1 = 0; x2 = CWorld::GetSectorIndexX(rect.right); if(x2 >= NUMSECTORS_X-1) x2 = NUMSECTORS_X-1; - y1 = CWorld::GetSectorIndexY(rect.bottom); + y1 = CWorld::GetSectorIndexY(rect.top); if(y1 < 0) y1 = 0; - y2 = CWorld::GetSectorIndexY(rect.top); + y2 = CWorld::GetSectorIndexY(rect.bottom); if(y2 >= NUMSECTORS_Y-1) y2 = NUMSECTORS_Y-1; for(; x1 <= x2; x1++) for(int y = y1; y <= y2; y++) @@ -713,9 +713,9 @@ CRenderer::RequestObjectsInFrustum(void) if(x1 < 0) x1 = 0; x2 = CWorld::GetSectorIndexX(rect.right); if(x2 >= NUMSECTORS_X-1) x2 = NUMSECTORS_X-1; - y1 = CWorld::GetSectorIndexY(rect.bottom); + y1 = CWorld::GetSectorIndexY(rect.top); if(y1 < 0) y1 = 0; - y2 = CWorld::GetSectorIndexY(rect.top); + y2 = CWorld::GetSectorIndexY(rect.bottom); if(y2 >= NUMSECTORS_Y-1) y2 = NUMSECTORS_Y-1; for(; x1 <= x2; x1++) for(int y = y1; y <= y2; y++) diff --git a/src/render/Rubbish.cpp b/src/render/Rubbish.cpp new file mode 100644 index 00000000..975f2554 --- /dev/null +++ b/src/render/Rubbish.cpp @@ -0,0 +1,5 @@ +#include "common.h" +#include "patcher.h" +#include "Rubbish.h" + +WRAPPER void CRubbish::Render(void) { EAXJMP(0x512190); } diff --git a/src/render/Rubbish.h b/src/render/Rubbish.h new file mode 100644 index 00000000..f4f976e9 --- /dev/null +++ b/src/render/Rubbish.h @@ -0,0 +1,7 @@ +#pragma once + +class CRubbish +{ +public: + static void Render(void); +}; diff --git a/src/render/Shadows.cpp b/src/render/Shadows.cpp index ead84e92..587dda99 100644 --- a/src/render/Shadows.cpp +++ b/src/render/Shadows.cpp @@ -1,7 +1,11 @@ #include "common.h" +#include "patcher.h" #include "Shadows.h" void CShadows::AddPermanentShadow(unsigned char ShadowType, RwTexture* pTexture, CVector* pPosn, float fX1, float fY1, float fX2, float fY2, short nTransparency, unsigned char nRed, unsigned char nGreen, unsigned char nBlue, float fZDistance, unsigned int nTime, float fScale) { ((void (__cdecl *)(unsigned char, RwTexture*, CVector*, float, float, float, float, short, unsigned char, unsigned char, unsigned char, float, unsigned int, float))0x56EC50)(ShadowType, pTexture, pPosn, fX1, fY1, fX2, fY2, nTransparency, nRed, nGreen, nBlue, fZDistance, nTime, fScale); } + +WRAPPER void CShadows::RenderStaticShadows(void) { EAXJMP(0x5145F0); } +WRAPPER void CShadows::RenderStoredShadows(void) { EAXJMP(0x514010); } diff --git a/src/render/Shadows.h b/src/render/Shadows.h index 3c7b4981..0a475f6f 100644 --- a/src/render/Shadows.h +++ b/src/render/Shadows.h @@ -5,5 +5,7 @@ struct RwTexture; class CShadows { public: - static void AddPermanentShadow(unsigned char ShadowType, RwTexture* pTexture, CVector* pPosn, float fX1, float fY1, float fX2, float fY2, short nTransparency, unsigned char nRed, unsigned char nGreen, unsigned char nBlue, float fZDistance, unsigned int nTime, float fScale); + static void AddPermanentShadow(uint8 ShadowType, RwTexture* pTexture, CVector* pPosn, float fX1, float fY1, float fX2, float fY2, short nTransparency, uint8 nRed, uint8 nGreen, uint8 nBlue, float fZDistance, uint32 nTime, float fScale); + static void RenderStaticShadows(void); + static void RenderStoredShadows(void); }; \ No newline at end of file diff --git a/src/render/Skidmarks.cpp b/src/render/Skidmarks.cpp new file mode 100644 index 00000000..678e1cdc --- /dev/null +++ b/src/render/Skidmarks.cpp @@ -0,0 +1,5 @@ +#include "common.h" +#include "patcher.h" +#include "Skidmarks.h" + +WRAPPER void CSkidmarks::Render(void) { EAXJMP(0x5182E0); } diff --git a/src/render/Skidmarks.h b/src/render/Skidmarks.h new file mode 100644 index 00000000..dcd61652 --- /dev/null +++ b/src/render/Skidmarks.h @@ -0,0 +1,7 @@ +#pragma once + +class CSkidmarks +{ +public: + static void Render(void); +}; diff --git a/src/render/SpecialFX.cpp b/src/render/SpecialFX.cpp new file mode 100644 index 00000000..3aa60f2f --- /dev/null +++ b/src/render/SpecialFX.cpp @@ -0,0 +1,5 @@ +#include "common.h" +#include "patcher.h" +#include "SpecialFX.h" + +WRAPPER void CSpecialFX::Render(void) { EAXJMP(0x518DC0); } diff --git a/src/render/SpecialFX.h b/src/render/SpecialFX.h new file mode 100644 index 00000000..ffa2a90a --- /dev/null +++ b/src/render/SpecialFX.h @@ -0,0 +1,7 @@ +#pragma once + +class CSpecialFX +{ +public: + static void Render(void); +}; diff --git a/src/render/Sprite.cpp b/src/render/Sprite.cpp index 900b4dba..2b669c87 100644 --- a/src/render/Sprite.cpp +++ b/src/render/Sprite.cpp @@ -377,7 +377,7 @@ CSprite::Set6Vertices2D(RwIm2DVertex *verts, const CRect &r, const CRGBA &c0, co recipz = m_fRecipNearClipPlane; RwIm2DVertexSetScreenX(&verts[0], r.left); - RwIm2DVertexSetScreenY(&verts[0], r.bottom); + RwIm2DVertexSetScreenY(&verts[0], r.top); RwIm2DVertexSetScreenZ(&verts[0], screenz); RwIm2DVertexSetCameraZ(&verts[0], z); RwIm2DVertexSetRecipCameraZ(&verts[0], recipz); @@ -386,7 +386,7 @@ CSprite::Set6Vertices2D(RwIm2DVertex *verts, const CRect &r, const CRGBA &c0, co RwIm2DVertexSetV(&verts[0], 0.0f, recipz); RwIm2DVertexSetScreenX(&verts[1], r.right); - RwIm2DVertexSetScreenY(&verts[1], r.bottom); + RwIm2DVertexSetScreenY(&verts[1], r.top); RwIm2DVertexSetScreenZ(&verts[1], screenz); RwIm2DVertexSetCameraZ(&verts[1], z); RwIm2DVertexSetRecipCameraZ(&verts[1], recipz); @@ -395,7 +395,7 @@ CSprite::Set6Vertices2D(RwIm2DVertex *verts, const CRect &r, const CRGBA &c0, co RwIm2DVertexSetV(&verts[1], 0.0f, recipz); RwIm2DVertexSetScreenX(&verts[2], r.right); - RwIm2DVertexSetScreenY(&verts[2], r.top); + RwIm2DVertexSetScreenY(&verts[2], r.bottom); RwIm2DVertexSetScreenZ(&verts[2], screenz); RwIm2DVertexSetCameraZ(&verts[2], z); RwIm2DVertexSetRecipCameraZ(&verts[2], recipz); @@ -404,7 +404,7 @@ CSprite::Set6Vertices2D(RwIm2DVertex *verts, const CRect &r, const CRGBA &c0, co RwIm2DVertexSetV(&verts[2], 1.0f, recipz); RwIm2DVertexSetScreenX(&verts[3], r.left); - RwIm2DVertexSetScreenY(&verts[3], r.top); + RwIm2DVertexSetScreenY(&verts[3], r.bottom); RwIm2DVertexSetScreenZ(&verts[3], screenz); RwIm2DVertexSetCameraZ(&verts[3], z); RwIm2DVertexSetRecipCameraZ(&verts[3], recipz); @@ -413,7 +413,7 @@ CSprite::Set6Vertices2D(RwIm2DVertex *verts, const CRect &r, const CRGBA &c0, co RwIm2DVertexSetV(&verts[3], 1.0f, recipz); RwIm2DVertexSetScreenX(&verts[4], r.left); - RwIm2DVertexSetScreenY(&verts[4], r.bottom); + RwIm2DVertexSetScreenY(&verts[4], r.top); RwIm2DVertexSetScreenZ(&verts[4], screenz); RwIm2DVertexSetCameraZ(&verts[4], z); RwIm2DVertexSetRecipCameraZ(&verts[4], recipz); @@ -422,7 +422,7 @@ CSprite::Set6Vertices2D(RwIm2DVertex *verts, const CRect &r, const CRGBA &c0, co RwIm2DVertexSetV(&verts[4], 0.0f, recipz); RwIm2DVertexSetScreenX(&verts[5], r.right); - RwIm2DVertexSetScreenY(&verts[5], r.top); + RwIm2DVertexSetScreenY(&verts[5], r.bottom); RwIm2DVertexSetScreenZ(&verts[5], screenz); RwIm2DVertexSetCameraZ(&verts[5], z); RwIm2DVertexSetRecipCameraZ(&verts[5], recipz); diff --git a/src/render/Sprite2d.cpp b/src/render/Sprite2d.cpp index ff6cd0db..3c699650 100644 --- a/src/render/Sprite2d.cpp +++ b/src/render/Sprite2d.cpp @@ -174,7 +174,7 @@ CSprite2d::SetVertices(const CRect &r, const CRGBA &c0, const CRGBA &c1, const C // | / | // 3---2 RwIm2DVertexSetScreenX(&maVertices[0], r.left); - RwIm2DVertexSetScreenY(&maVertices[0], r.bottom); + RwIm2DVertexSetScreenY(&maVertices[0], r.top); RwIm2DVertexSetScreenZ(&maVertices[0], screenz); RwIm2DVertexSetCameraZ(&maVertices[0], z); RwIm2DVertexSetRecipCameraZ(&maVertices[0], recipz); @@ -183,7 +183,7 @@ CSprite2d::SetVertices(const CRect &r, const CRGBA &c0, const CRGBA &c1, const C RwIm2DVertexSetV(&maVertices[0], 0.0f, recipz); RwIm2DVertexSetScreenX(&maVertices[1], r.right); - RwIm2DVertexSetScreenY(&maVertices[1], r.bottom); + RwIm2DVertexSetScreenY(&maVertices[1], r.top); RwIm2DVertexSetScreenZ(&maVertices[1], screenz); RwIm2DVertexSetCameraZ(&maVertices[1], z); RwIm2DVertexSetRecipCameraZ(&maVertices[1], recipz); @@ -192,7 +192,7 @@ CSprite2d::SetVertices(const CRect &r, const CRGBA &c0, const CRGBA &c1, const C RwIm2DVertexSetV(&maVertices[1], 0.0f, recipz); RwIm2DVertexSetScreenX(&maVertices[2], r.right); - RwIm2DVertexSetScreenY(&maVertices[2], r.top); + RwIm2DVertexSetScreenY(&maVertices[2], r.bottom); RwIm2DVertexSetScreenZ(&maVertices[2], screenz); RwIm2DVertexSetCameraZ(&maVertices[2], z); RwIm2DVertexSetRecipCameraZ(&maVertices[2], recipz); @@ -201,7 +201,7 @@ CSprite2d::SetVertices(const CRect &r, const CRGBA &c0, const CRGBA &c1, const C RwIm2DVertexSetV(&maVertices[2], 1.0f, recipz); RwIm2DVertexSetScreenX(&maVertices[3], r.left); - RwIm2DVertexSetScreenY(&maVertices[3], r.top); + RwIm2DVertexSetScreenY(&maVertices[3], r.bottom); RwIm2DVertexSetScreenZ(&maVertices[3], screenz); RwIm2DVertexSetCameraZ(&maVertices[3], z); RwIm2DVertexSetRecipCameraZ(&maVertices[3], recipz); @@ -225,7 +225,7 @@ CSprite2d::SetVertices(const CRect &r, const CRGBA &c0, const CRGBA &c1, const C // | / | // 3---2 RwIm2DVertexSetScreenX(&maVertices[0], r.left); - RwIm2DVertexSetScreenY(&maVertices[0], r.bottom); + RwIm2DVertexSetScreenY(&maVertices[0], r.top); RwIm2DVertexSetScreenZ(&maVertices[0], screenz); RwIm2DVertexSetCameraZ(&maVertices[0], z); RwIm2DVertexSetRecipCameraZ(&maVertices[0], recipz); @@ -234,7 +234,7 @@ CSprite2d::SetVertices(const CRect &r, const CRGBA &c0, const CRGBA &c1, const C RwIm2DVertexSetV(&maVertices[0], v0, recipz); RwIm2DVertexSetScreenX(&maVertices[1], r.right); - RwIm2DVertexSetScreenY(&maVertices[1], r.bottom); + RwIm2DVertexSetScreenY(&maVertices[1], r.top); RwIm2DVertexSetScreenZ(&maVertices[1], screenz); RwIm2DVertexSetCameraZ(&maVertices[1], z); RwIm2DVertexSetRecipCameraZ(&maVertices[1], recipz); @@ -243,7 +243,7 @@ CSprite2d::SetVertices(const CRect &r, const CRGBA &c0, const CRGBA &c1, const C RwIm2DVertexSetV(&maVertices[1], v1, recipz); RwIm2DVertexSetScreenX(&maVertices[2], r.right); - RwIm2DVertexSetScreenY(&maVertices[2], r.top); + RwIm2DVertexSetScreenY(&maVertices[2], r.bottom); RwIm2DVertexSetScreenZ(&maVertices[2], screenz); RwIm2DVertexSetCameraZ(&maVertices[2], z); RwIm2DVertexSetRecipCameraZ(&maVertices[2], recipz); @@ -252,7 +252,7 @@ CSprite2d::SetVertices(const CRect &r, const CRGBA &c0, const CRGBA &c1, const C RwIm2DVertexSetV(&maVertices[2], v2, recipz); RwIm2DVertexSetScreenX(&maVertices[3], r.left); - RwIm2DVertexSetScreenY(&maVertices[3], r.top); + RwIm2DVertexSetScreenY(&maVertices[3], r.bottom); RwIm2DVertexSetScreenZ(&maVertices[3], screenz); RwIm2DVertexSetCameraZ(&maVertices[3], z); RwIm2DVertexSetRecipCameraZ(&maVertices[3], recipz); @@ -358,7 +358,7 @@ CSprite2d::SetVertices(RwIm2DVertex *verts, const CRect &r, const CRGBA &c0, con recipz = RecipNearClip; RwIm2DVertexSetScreenX(&verts[0], r.left); - RwIm2DVertexSetScreenY(&verts[0], r.bottom); + RwIm2DVertexSetScreenY(&verts[0], r.top); RwIm2DVertexSetScreenZ(&verts[0], screenz); RwIm2DVertexSetCameraZ(&verts[0], z); RwIm2DVertexSetRecipCameraZ(&verts[0], recipz); @@ -367,7 +367,7 @@ CSprite2d::SetVertices(RwIm2DVertex *verts, const CRect &r, const CRGBA &c0, con RwIm2DVertexSetV(&verts[0], v0, recipz); RwIm2DVertexSetScreenX(&verts[1], r.left); - RwIm2DVertexSetScreenY(&verts[1], r.top); + RwIm2DVertexSetScreenY(&verts[1], r.bottom); RwIm2DVertexSetScreenZ(&verts[1], screenz); RwIm2DVertexSetCameraZ(&verts[1], z); RwIm2DVertexSetRecipCameraZ(&verts[1], recipz); @@ -376,7 +376,7 @@ CSprite2d::SetVertices(RwIm2DVertex *verts, const CRect &r, const CRGBA &c0, con RwIm2DVertexSetV(&verts[1], v2, recipz); RwIm2DVertexSetScreenX(&verts[2], r.right); - RwIm2DVertexSetScreenY(&verts[2], r.top); + RwIm2DVertexSetScreenY(&verts[2], r.bottom); RwIm2DVertexSetScreenZ(&verts[2], screenz); RwIm2DVertexSetCameraZ(&verts[2], z); RwIm2DVertexSetRecipCameraZ(&verts[2], recipz); @@ -385,7 +385,7 @@ CSprite2d::SetVertices(RwIm2DVertex *verts, const CRect &r, const CRGBA &c0, con RwIm2DVertexSetV(&verts[2], v3, recipz); RwIm2DVertexSetScreenX(&verts[3], r.left); - RwIm2DVertexSetScreenY(&verts[3], r.bottom); + RwIm2DVertexSetScreenY(&verts[3], r.top); RwIm2DVertexSetScreenZ(&verts[3], screenz); RwIm2DVertexSetCameraZ(&verts[3], z); RwIm2DVertexSetRecipCameraZ(&verts[3], recipz); @@ -394,7 +394,7 @@ CSprite2d::SetVertices(RwIm2DVertex *verts, const CRect &r, const CRGBA &c0, con RwIm2DVertexSetV(&verts[3], v0, recipz); RwIm2DVertexSetScreenX(&verts[4], r.right); - RwIm2DVertexSetScreenY(&verts[4], r.top); + RwIm2DVertexSetScreenY(&verts[4], r.bottom); RwIm2DVertexSetScreenZ(&verts[4], screenz); RwIm2DVertexSetCameraZ(&verts[4], z); RwIm2DVertexSetRecipCameraZ(&verts[4], recipz); @@ -403,7 +403,7 @@ CSprite2d::SetVertices(RwIm2DVertex *verts, const CRect &r, const CRGBA &c0, con RwIm2DVertexSetV(&verts[4], v3, recipz); RwIm2DVertexSetScreenX(&verts[5], r.right); - RwIm2DVertexSetScreenY(&verts[5], r.bottom); + RwIm2DVertexSetScreenY(&verts[5], r.top); RwIm2DVertexSetScreenZ(&verts[5], screenz); RwIm2DVertexSetCameraZ(&verts[5], z); RwIm2DVertexSetRecipCameraZ(&verts[5], recipz); diff --git a/src/render/WaterCannon.cpp b/src/render/WaterCannon.cpp new file mode 100644 index 00000000..afb40f6f --- /dev/null +++ b/src/render/WaterCannon.cpp @@ -0,0 +1,5 @@ +#include "common.h" +#include "patcher.h" +#include "WaterCannon.h" + +WRAPPER void CWaterCannons::Render(void) { EAXJMP(0x522550); } diff --git a/src/render/WaterCannon.h b/src/render/WaterCannon.h new file mode 100644 index 00000000..1a18e75f --- /dev/null +++ b/src/render/WaterCannon.h @@ -0,0 +1,7 @@ +#pragma once + +class CWaterCannons +{ +public: + static void Render(void); +}; diff --git a/src/render/WaterLevel.cpp b/src/render/WaterLevel.cpp new file mode 100644 index 00000000..866847b3 --- /dev/null +++ b/src/render/WaterLevel.cpp @@ -0,0 +1,5 @@ +#include "common.h" +#include "patcher.h" +#include "WaterLevel.h" + +WRAPPER void CWaterLevel::RenderWater(void) { EAXJMP(0x5554E0); } diff --git a/src/render/WaterLevel.h b/src/render/WaterLevel.h new file mode 100644 index 00000000..70a2ba97 --- /dev/null +++ b/src/render/WaterLevel.h @@ -0,0 +1,7 @@ +#pragma once + +class CWaterLevel +{ +public: + static void RenderWater(void); +}; diff --git a/src/render/WeaponEffects.cpp b/src/render/WeaponEffects.cpp new file mode 100644 index 00000000..a1a6d25a --- /dev/null +++ b/src/render/WeaponEffects.cpp @@ -0,0 +1,5 @@ +#include "common.h" +#include "patcher.h" +#include "WeaponEffects.h" + +WRAPPER void CWeaponEffects::Render(void) { EAXJMP(0x564D70); } diff --git a/src/render/WeaponEffects.h b/src/render/WeaponEffects.h new file mode 100644 index 00000000..63c8fd7d --- /dev/null +++ b/src/render/WeaponEffects.h @@ -0,0 +1,7 @@ +#pragma once + +class CWeaponEffects +{ +public: + static void Render(void); +}; -- cgit v1.2.3