diff options
author | Sergeanur <s.anureev@yandex.ua> | 2020-08-14 17:57:23 +0200 |
---|---|---|
committer | Sergeanur <s.anureev@yandex.ua> | 2020-08-14 17:57:23 +0200 |
commit | e7945625b59750459ff4876f7e076b4b8d5c3aee (patch) | |
tree | 0021cf5c59fa4e9600b732d221627c349eb0fc5d /src/core | |
parent | Darkel fixes (diff) | |
download | re3-e7945625b59750459ff4876f7e076b4b8d5c3aee.tar re3-e7945625b59750459ff4876f7e076b4b8d5c3aee.tar.gz re3-e7945625b59750459ff4876f7e076b4b8d5c3aee.tar.bz2 re3-e7945625b59750459ff4876f7e076b4b8d5c3aee.tar.lz re3-e7945625b59750459ff4876f7e076b4b8d5c3aee.tar.xz re3-e7945625b59750459ff4876f7e076b4b8d5c3aee.tar.zst re3-e7945625b59750459ff4876f7e076b4b8d5c3aee.zip |
Diffstat (limited to '')
-rw-r--r-- | src/core/FileMgr.h | 1 | ||||
-rw-r--r-- | src/core/main.cpp | 38 |
2 files changed, 39 insertions, 0 deletions
diff --git a/src/core/FileMgr.h b/src/core/FileMgr.h index 0ad9daa7..4734720e 100644 --- a/src/core/FileMgr.h +++ b/src/core/FileMgr.h @@ -19,4 +19,5 @@ public: static bool ReadLine(int fd, char *buf, int len); static int CloseFile(int fd); static int GetErrorReadWrite(int fd); + static char *GetRootDirName() { return ms_rootDirName; } }; diff --git a/src/core/main.cpp b/src/core/main.cpp index b63688ec..8458a248 100644 --- a/src/core/main.cpp +++ b/src/core/main.cpp @@ -2,6 +2,7 @@ #include "rpmatfx.h" #include "rphanim.h" #include "rpskin.h" +#include "rtbmp.h" #include "main.h" #include "CdStream.h" @@ -61,6 +62,7 @@ #include "MemoryCard.h" #include "SceneEdit.h" #include "debugmenu.h" +#include "Clock.h" GlobalScene Scene; @@ -288,6 +290,28 @@ DoFade(void) } } +bool +RwGrabScreen(RwCamera *camera, RwChar *filename) +{ + char temp[255]; + RwImage *pImage = RsGrabScreen(camera); + bool result = true; + + if (pImage == nil) + return false; + + strcpy(temp, CFileMgr::GetRootDirName()); + strcat(temp, filename); + + if (RtBMPImageWrite(pImage, &temp[0]) == nil) + result = false; + RwImageDestroy(pImage); + return result; +} + +#define TILE_WIDTH 576 +#define TILE_HEIGHT 432 + void DoRWStuffEndOfFrame(void) { @@ -296,6 +320,20 @@ DoRWStuffEndOfFrame(void) FlushObrsPrintfs(); RwCameraEndUpdate(Scene.camera); RsCameraShowRaster(Scene.camera); +#ifndef MASTER + char s[48]; + if (CPad::GetPad(1)->GetLeftShockJustDown()) { + // try using both controllers for this thing... crazy bastards + if (CPad::GetPad(0)->GetRightStickY() > 0) { + sprintf(s, "screen%d%d.ras", CClock::ms_nGameClockHours, CClock::ms_nGameClockMinutes); + // TODO + //RtTileRender(Scene.camera, TILE_WIDTH * 2, TILE_HEIGHT * 2, TILE_WIDTH, TILE_HEIGHT, &NewTileRendererCB, nil, s); + } else { + sprintf(s, "screen%d%d.bmp", CClock::ms_nGameClockHours, CClock::ms_nGameClockMinutes); + RwGrabScreen(Scene.camera, s); + } + } +#endif // !MASTER } static RwBool |