summaryrefslogtreecommitdiffstats
path: root/src/RwHelper.cpp
diff options
context:
space:
mode:
authoraap <aap@papnet.eu>2019-07-07 13:09:11 +0200
committeraap <aap@papnet.eu>2019-07-07 13:09:11 +0200
commit53023eb65bdcde43e341c1ecb7cf0c7f8ee524fb (patch)
treefc65a6c40fa719f9d43be9e0e15be79c490135e0 /src/RwHelper.cpp
parentfinished CPhysical (diff)
downloadre3-53023eb65bdcde43e341c1ecb7cf0c7f8ee524fb.tar
re3-53023eb65bdcde43e341c1ecb7cf0c7f8ee524fb.tar.gz
re3-53023eb65bdcde43e341c1ecb7cf0c7f8ee524fb.tar.bz2
re3-53023eb65bdcde43e341c1ecb7cf0c7f8ee524fb.tar.lz
re3-53023eb65bdcde43e341c1ecb7cf0c7f8ee524fb.tar.xz
re3-53023eb65bdcde43e341c1ecb7cf0c7f8ee524fb.tar.zst
re3-53023eb65bdcde43e341c1ecb7cf0c7f8ee524fb.zip
Diffstat (limited to 'src/RwHelper.cpp')
-rw-r--r--src/RwHelper.cpp356
1 files changed, 0 insertions, 356 deletions
diff --git a/src/RwHelper.cpp b/src/RwHelper.cpp
deleted file mode 100644
index 8dade266..00000000
--- a/src/RwHelper.cpp
+++ /dev/null
@@ -1,356 +0,0 @@
-#define WITHD3D
-#include "common.h"
-#include "patcher.h"
-#include "Timecycle.h"
-#include "skeleton.h"
-
-void *
-RwMallocAlign(RwUInt32 size, RwUInt32 align)
-{
- void *mem = (void *)malloc(size + align);
-
- ASSERT(mem != nil);
-
- void *addr = (void *)((((RwUInt32)mem) + align) & ~(align - 1));
-
- ASSERT(addr != nil);
-
- *(((void **)addr) - 1) = mem;
-
- return addr;
-}
-
-void
-RwFreeAlign(void *mem)
-{
- ASSERT(mem != nil);
-
- void *addr = *(((void **)mem) - 1);
-
- ASSERT(addr != nil);
-
- free(addr);
-}
-
-void
-DefinedState(void)
-{
- RwRenderStateSet(rwRENDERSTATETEXTUREADDRESS, (void*)rwTEXTUREADDRESSWRAP);
- RwRenderStateSet(rwRENDERSTATETEXTUREPERSPECTIVE, (void*)TRUE);
- RwRenderStateSet(rwRENDERSTATEZTESTENABLE, (void*)TRUE);
- RwRenderStateSet(rwRENDERSTATEZWRITEENABLE, (void*)TRUE);
- RwRenderStateSet(rwRENDERSTATESHADEMODE, (void*)rwSHADEMODEGOURAUD);
- RwRenderStateSet(rwRENDERSTATETEXTUREFILTER, (void*)rwFILTERLINEAR);
- RwRenderStateSet(rwRENDERSTATEVERTEXALPHAENABLE, (void*)FALSE);
- RwRenderStateSet(rwRENDERSTATESRCBLEND, (void*)rwBLENDSRCALPHA);
- RwRenderStateSet(rwRENDERSTATEDESTBLEND, (void*)rwBLENDINVSRCALPHA);
- RwRenderStateSet(rwRENDERSTATEALPHAPRIMITIVEBUFFER, (void*)FALSE);
- RwRenderStateSet(rwRENDERSTATEBORDERCOLOR, (void*)RWRGBALONG(0, 0, 0, 255));
- RwRenderStateSet(rwRENDERSTATEFOGENABLE, (void*)FALSE);
- RwRenderStateSet(rwRENDERSTATEFOGCOLOR,
- (void*)RWRGBALONG(CTimeCycle::GetFogRed(), CTimeCycle::GetFogGreen(), CTimeCycle::GetFogBlue(), 255));
- RwRenderStateSet(rwRENDERSTATEFOGTYPE, (void*)rwFOGTYPELINEAR);
- RwRenderStateSet(rwRENDERSTATECULLMODE, (void*)rwCULLMODECULLNONE);
-
- // D3D stuff
- RwD3D8SetRenderState(D3DRS_ALPHAFUNC, D3DCMP_GREATER);
- RwD3D8SetRenderState(D3DRS_ALPHAREF, 2);
-}
-
-RwFrame*
-GetFirstFrameCallback(RwFrame *child, void *data)
-{
- *(RwFrame**)data = child;
- return nil;
-}
-
-RwFrame*
-GetFirstChild(RwFrame *frame)
-{
- RwFrame *child;
-
- child = nil;
- RwFrameForAllChildren(frame, GetFirstFrameCallback, &child);
- return child;
-}
-
-RwObject*
-GetFirstObjectCallback(RwObject *object, void *data)
-{
- *(RwObject**)data = object;
- return nil;
-}
-
-RwObject*
-GetFirstObject(RwFrame *frame)
-{
- RwObject *obj;
-
- obj = nil;
- RwFrameForAllObjects(frame, GetFirstObjectCallback, &obj);
- return obj;
-}
-
-RpAtomic*
-GetFirstAtomicCallback(RpAtomic *atm, void *data)
-{
- *(RpAtomic**)data = atm;
- return nil;
-}
-
-RpAtomic*
-GetFirstAtomic(RpClump *clump)
-{
- RpAtomic *atm;
-
- atm = nil;
- RpClumpForAllAtomics(clump, GetFirstAtomicCallback, &atm);
- return atm;
-}
-
-RwTexture*
-GetFirstTextureCallback(RwTexture *tex, void *data)
-{
- *(RwTexture**)data = tex;
- return nil;
-}
-
-RwTexture*
-GetFirstTexture(RwTexDictionary *txd)
-{
- RwTexture *tex;
-
- tex = nil;
- RwTexDictionaryForAllTextures(txd, GetFirstTextureCallback, &tex);
- return tex;
-}
-
-void
-CameraSize(RwCamera * camera, RwRect * rect,
- RwReal viewWindow, RwReal aspectRatio)
-{
- if (camera)
- {
- RwVideoMode videoMode;
- RwRect r;
- RwRect origSize = { 0, 0, 0, 0 }; // FIX just to make the compier happy
- RwV2d vw;
-
- RwEngineGetVideoModeInfo(&videoMode,
- RwEngineGetCurrentVideoMode());
-
- origSize.w = RwRasterGetWidth(RwCameraGetRaster(camera));
- origSize.h = RwRasterGetHeight(RwCameraGetRaster(camera));
-
- if (!rect)
- {
- if (videoMode.flags & rwVIDEOMODEEXCLUSIVE)
- {
- /* For full screen applications, resizing the camera just doesn't
- * make sense, use the video mode size.
- */
-
- r.x = r.y = 0;
- r.w = videoMode.width;
- r.h = videoMode.height;
- rect = &r;
- }
- else
- {
- /*
- rect not specified - reuse current values
- */
- r.w = RwRasterGetWidth(RwCameraGetRaster(camera));
- r.h = RwRasterGetHeight(RwCameraGetRaster(camera));
- r.x = r.y = 0;
- rect = &r;
- }
- }
-
- if (( origSize.w != rect->w ) && ( origSize.h != rect->h ))
- {
- RwRaster *raster;
- RwRaster *zRaster;
-
- /*
- * Destroy rasters...
- */
-
- raster = RwCameraGetRaster(camera);
- if( raster )
- {
- RwRasterDestroy(raster);
- }
-
- zRaster = RwCameraGetZRaster(camera);
- if( zRaster )
- {
- RwRasterDestroy(zRaster);
- }
-
- /*
- * Create new rasters...
- */
-
- raster = RwRasterCreate(rect->w, rect->h, 0, rwRASTERTYPECAMERA);
- zRaster = RwRasterCreate(rect->w, rect->h, 0, rwRASTERTYPEZBUFFER);
-
- if( raster && zRaster )
- {
- RwCameraSetRaster(camera, raster);
- RwCameraSetZRaster(camera, zRaster);
- }
- else
- {
- if( raster )
- {
- RwRasterDestroy(raster);
- }
-
- if( zRaster )
- {
- RwRasterDestroy(zRaster);
- }
-
- rect->x = origSize.x;
- rect->y = origSize.y;
- rect->w = origSize.w;
- rect->h = origSize.h;
-
- /*
- * Use default values...
- */
- raster =
- RwRasterCreate(rect->w, rect->h, 0, rwRASTERTYPECAMERA);
-
- zRaster =
- RwRasterCreate(rect->w, rect->h, 0, rwRASTERTYPEZBUFFER);
-
- RwCameraSetRaster(camera, raster);
- RwCameraSetZRaster(camera, zRaster);
- }
- }
-
- /* Figure out the view window */
- if (videoMode.flags & rwVIDEOMODEEXCLUSIVE)
- {
- /* derive ratio from aspect ratio */
- vw.x = viewWindow;
- vw.y = viewWindow / aspectRatio;
- }
- else
- {
- /* derive from pixel ratios */
- if (rect->w > rect->h)
- {
- vw.x = viewWindow;
- vw.y = (rect->h * viewWindow) / rect->w;
- }
- else
- {
- vw.x = (rect->w * viewWindow) / rect->h;
- vw.y = viewWindow;
- }
- }
-
- RwCameraSetViewWindow(camera, &vw);
-
- RsGlobal.width = rect->w;
- RsGlobal.height = rect->h;
- }
-
- return;
-}
-
-void
-CameraDestroy(RwCamera *camera)
-{
- RwRaster *raster, *tmpRaster;
- RwFrame *frame;
-
- if (camera)
- {
- frame = RwCameraGetFrame(camera);
- if (frame)
- {
- RwFrameDestroy(frame);
- }
-
- raster = RwCameraGetRaster(camera);
- if (raster)
- {
- tmpRaster = RwRasterGetParent(raster);
-
- RwRasterDestroy(raster);
-
- if ((tmpRaster != nil) && (tmpRaster != raster))
- {
- RwRasterDestroy(tmpRaster);
- }
- }
-
- raster = RwCameraGetZRaster(camera);
- if (raster)
- {
- tmpRaster = RwRasterGetParent(raster);
-
- RwRasterDestroy(raster);
-
- if ((tmpRaster != nil) && (tmpRaster != raster))
- {
- RwRasterDestroy(tmpRaster);
- }
- }
-
- RwCameraDestroy(camera);
- }
-
- return;
-}
-
-RwCamera *
-CameraCreate(RwInt32 width, RwInt32 height, RwBool zBuffer)
-{
- RwCamera *camera;
-
- camera = RwCameraCreate();
-
- if (camera)
- {
- RwCameraSetFrame(camera, RwFrameCreate());
- RwCameraSetRaster(camera,
- RwRasterCreate(0, 0, 0, rwRASTERTYPECAMERA));
-
- if (zBuffer)
- {
- RwCameraSetZRaster(camera,
- RwRasterCreate(0, 0, 0,
- rwRASTERTYPEZBUFFER));
- }
-
- /* now check that everything is valid */
- if (RwCameraGetFrame(camera) &&
- RwCameraGetRaster(camera) &&
- RwRasterGetParent(RwCameraGetRaster(camera)) &&
- (!zBuffer || (RwCameraGetZRaster(camera) &&
- RwRasterGetParent(RwCameraGetZRaster
- (camera)))))
- {
- /* everything OK */
- return (camera);
- }
- }
-
- /* if we're here then an error must have occurred so clean up */
-
- CameraDestroy(camera);
- return (nil);
-}
-
-STARTPATCHES
- //InjectHook(0x526450, GetFirstObjectCallback, PATCH_JUMP);
- InjectHook(0x526460, GetFirstObject, PATCH_JUMP);
- InjectHook(0x527170, CameraSize, PATCH_JUMP);
- InjectHook(0x527340, CameraDestroy, PATCH_JUMP);
- InjectHook(0x5273B0, CameraCreate, PATCH_JUMP);
-ENDPATCHES