summaryrefslogtreecommitdiffstats
path: root/src/core
diff options
context:
space:
mode:
authorSergeanur <s.anureev@yandex.ua>2020-08-14 17:57:23 +0200
committerSergeanur <s.anureev@yandex.ua>2020-08-14 17:57:23 +0200
commite7945625b59750459ff4876f7e076b4b8d5c3aee (patch)
tree0021cf5c59fa4e9600b732d221627c349eb0fc5d /src/core
parentDarkel fixes (diff)
downloadre3-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 'src/core')
-rw-r--r--src/core/FileMgr.h1
-rw-r--r--src/core/main.cpp38
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