1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2024-06-18 03:09:59 +00:00

new utility functions: (de)serialize, as_cstring

This commit is contained in:
Zeno Rogue 2020-02-26 01:29:01 +01:00
parent 8cf90ef848
commit f84f51e972
2 changed files with 25 additions and 3 deletions

View File

@ -992,9 +992,7 @@ int read_geom_args() {
else if(argis("-fwrite")) {
shstream hs;
hwrite_fpattern(hs, currfp);
string s;
for(char c: hs.s) s += format("\\x%02x", (unsigned char) c);
println(hlog, "current fieldpattern: ", s);
println(hlog, "current fieldpattern: ", as_cstring(hs.s));
}
else if(argis("-csp")) {
cheat();

View File

@ -357,6 +357,30 @@ EX transmatrix kz(transmatrix h) {
EX string pick123() { return cts('1' + rand() % 3); }
EX string pick12() { return cts('1' + rand() % 2); }
#if HDR
template<class T> string serialize(const T& data) {
shstream shs;
hwrite(shs, data);
return shs.s;
}
template<class T> T deserialize(const string& s) {
shstream shs;
shs.s = s;
T data;
hread(shs, data);
return data;
}
#endif
EX string as_cstring(string o) {
string s = "string(\"";
for(char c: o)
s += format("\\x%02x", (unsigned char) c);
s += format("\", %d)", isize(o));
return s;
}
#if HDR
#if ISANDROID
#define DEBB(r,x)