📄 fileman.hpp
字号:
/* FILEMAN.HPP - File manager header
*/
#ifndef _FILEMAN_HPP
#define _FILEMAN_HPP
#include "GUI.HPP"
#include "COMMON.HPP"
#define SLASH '\\'
extern char romdir [80], sramdir [80], instdir [80], sshotdir [80];
// SNooze.Cfg stuff starts here
#define FGLOBAL 0
#define FROMSETTING 1
#define FJOYPADSETTING 2
#define FCHEAT 3
#define FWINDOWPOS 4
#define FSTRINGALLOC 5
#define FSTRING 0
#define FBYTE 1
#define FWORD 2
#define FDWORD 4
struct filemap {
char tag[10];
byte datastruct;
byte datatype;
dword offset;
// if datastruct==FGLOBAL, this is a pointer
};
#define FTAGS 74
extern struct filemap fm[FTAGS];
struct cheatpatch {
boolean wordsized;
byte bank;
word addr;
word newval, prevval;
};
struct cheatpatchset {
char *desc;
byte addrs; // number of addresses
boolean enabled;
struct cheatpatch *patch;
};
// End of SNooze.Cfg stuff
struct windowsettings {
signed char zorder;
short x, y;
};
struct gamesettings {
char filename [13];
boolean autoreg;
byte frameskip, regpercent;
boolean grspeedup;
byte cpupercent, spcpercent;
word soundch;
byte bgs; // bit 4=sprites
#define FORCEHIROM 1
#define FORCELOROM 2
#define FORCENTSC 1
#define FORCEPAL 2
// Do not force if 0 - autodetect instead
byte forcerom, forcecountry;
boolean interleaved;
boolean emulatespc;
byte spcskipmethod;
word openwindows;
boolean ignorefastrom;
boolean indirecthdma, windowing;
#define MAXPATCHSETS 16
struct cheatpatchset *cheat [MAXPATCHSETS];
byte patches;
};
extern byte gameres, guires;
extern byte addsubmethod;
extern byte soundkhz, soundchannels;
extern boolean stereosound;
extern byte pcontrol[4];
extern boolean autobacktrack, disallowinst;
extern word backtracktime, backtracknum;
extern struct windowsettings ws [NUMWINDOWS];
#define MAXGAMEDATABASE 256
extern struct gamesettings *gs [MAXGAMEDATABASE];
extern struct gamesettings *curgs;
extern int curgsnum;
extern boolean romloaded, romrunning;
void storewinsettings ();
void applywinsettings ();
void initfilemanager (char *argv0);
void uninitfilemanager (void);
int findgsnum (char *filename);
void createromentry (char *filename);
void loadsettings (char *filename);
void savesettings (char *filename);
void loadrom (char *fn, boolean gui = true, int forcerom = 0);
void loadromheaderdata (char *fn, struct headerdata *h, int forcerom);
void unloadcurrentrom ();
// Cheat code management
int createpatch (char *patchspec, char *desc, boolean gui = true);
char *getggcode (byte value, dword addr);
char *getpatchname (int pn, boolean ggformat);
void getggmeaning (char *strcode, byte &value, dword &addr);
void deletepatch (int n);
// misc string and file functions
boolean exists (char *s);
boolean isadir (char *s);
void delstr (char *s, int p, int n);
int findlastch (char *s, char ch);
int findfirstch (char *s, char ch);
int countchar (char *s, char ch);
void trimfilespec (char *s);
void strippathname (char *name);
void stripfilename (char *name);
void getabspath (char *path);
void combinepathfile (char *comb, char *path, char *fn);
void combinepaths (char *comb, char *path, char *offs);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -