#include "hslist.h"
#include <SDL_ttf.h>
#include <SDL_net.h>
#include <sstream>
#include <fstream>
#include "util.h"
#include "titlestate.h"
SDL_Surface* HighscoreList::render()
{
SDL_Surface* tmp = SDL_CreateRGBSurface(0, 480, 480, 32, 0,0,0,0);
Uint32 bgColor = SDL_MapRGB(tmp->format, 255, 255, 255);
SDL_FillRect(tmp, NULL, bgColor);
SDL_SetColorKey(tmp, SDL_TRUE, bgColor);
TTF_Font* posFont = loadFont(40);
TTF_Font* dataFont = loadFont(25);
SDL_Color fontColor = {0, 0, 0, 0};
for (int i=0; i<hslist.size(); i++)
{
Highscore h = hslist[i];
int posw, posh;
char pos[3]; // 2 max characters in rank plus the colon at the end
sprintf(pos, "%d:", h.getRank());
TTF_SizeText(posFont, pos, &posw, &posh);
SDL_Rect posSpace = {0, (i+1)*40, posw, posh};
SDL_BlitSurface(TTF_RenderText_Blended(posFont, pos, fontColor), NULL, tmp, &posSpace);
int namew, nameh;
char name[26]; // 25 max characters in username plus the space at the beginning
sprintf(name, " %s", h.getName());
TTF_SizeText(dataFont, name, &namew, &nameh);
SDL_Rect nameSpace = {posw, (i+1)*40+((posh/2)-(nameh/2)), namew, nameh};
SDL_BlitSurface(TTF_RenderText_Blended(dataFont, name, fontColor), NULL, tmp, &nameSpace);
int lvlw, lvlh;
char lvl[10]; // 10 max characters in level (based off the fact that 2^32-1 is 10 characters long, and is the highest int)
sprintf(lvl, "%d", h.getLevel());
TTF_SizeText(dataFont, lvl, &lvlw, &lvlh);
SDL_Rect lvlSpace = {480-lvlw, (i+1)*40+((posh/2)-(nameh/2)), lvlw, lvlh};
SDL_BlitSurface(TTF_RenderText_Blended(dataFont, lvl, fontColor), NULL, tmp, &lvlSpace);
}
return tmp;
}
std::vector<Highscore> HighscoreList::getLocalHighscores()
{
std::vector<Highscore> temp = std::vector<Highscore>();
std::ifstream exists(getDataFile());
if (exists)
{
FILE* hslist = fopen(getDataFile(), "r");
int scores;
fscanf(hslist, "%d%*c", &scores);
for (int i=0; i<scores; i++)
{
int namelen;
char namelens[4];
char* name = (char*) calloc(25, sizeof(char));
int score;
fscanf(hslist, "%d", &namelen);
sprintf(namelens, "%%%dc", namelen);
fscanf(hslist, namelens, name);
fscanf(hslist, "%d%*c", &score);
Highscore h = Highscore(name, score);
h.setRank(i+1);
temp.push_back(h);
}
fclose(hslist);
}
return temp;
}
std::vector<Highscore> HighscoreList::getGlobalHighscores()
{
IPaddress ipaddress;
if (SDLNet_ResolveHost(&ipaddress, "other.fourisland.com", 80) == -1)
{
printf("Could not resolve host \"other.fourisland.com\": %s\n", SDLNet_GetError());
throw 1;
}
TCPsocket tcpsock = SDLNet_TCP_Open(&ipaddress);
if (!tcpsock)
{
printf("Could not connect to host \"other.fourisland.com\": %s\n", SDLNet_GetError());
throw 2;
}
const char* headers = "GET /mol/hslist.php HTTP/1.1\nHost: other.fourisland.com\nUser-Agent: Maze Of Life v3.0\nAccept: text/plain\nKeep-Alive: 300\nConnection: keep-alive\n\n";
if (SDLNet_TCP_Send(tcpsock, headers, strlen(headers)+1) < strlen(headers))
{
printf("Connection closed by peer: %s\n", SDLNet_GetError());
throw 3;
}
std::stringstream download(std::stringstream::in | std::stringstream::out);
char hslist[1024];
SDLNet_TCP_Recv(tcpsock, hslist, 1024);
download << hslist;
SDLNet_TCP_Close(tcpsock);
char temps[256];
download.getline(temps,256);
while (strlen(temps) != 1)
{
download.getline(temps,256);
}
std::vector<Highscore> temp = std::vector<Highscore>();
int scores;
download.getline(temps, 256);
if (sscanf(temps, "%d%*c", &scores) != 1)
{
printf("Recieved data is of an invalid format: %s\n", temps);
throw 4;
}
for (int i=0; i<scores; i++)
{
int namelen;
char namelens[13];
char* name = (char*) calloc(25, sizeof(char));
int score;
download.getline(temps, 256);
if (sscanf(temps, "%d", &namelen) != 1)
maps {
key: "four_rooms"
value {
doors {
key: "A2 Door"
value: 246
}
doors {
key: "Examples Door"
value: 243
}
doors {
key: "Intensify Door"
value: 242
}
doors {
key: "Keyholder Door"
value: 247
}
doors {
key: "Synonyms Door"
value: 244
}
doors {
key: "Time Door"
value: 245
}
rooms {
key: "Examples Room"
value {
panels {
key: "ART"
value: 269
}
panels {
key: "EMOTION"
value: 265
}
panels {
key: "SIZE"
value: 264
}
panels {
key: "SONNET"
value: 267
}
panels {
key: "SUPERLATIVE"
value: 266
}
panels {
key: "URN"
value: 268
}
}
}
rooms {
key: "Hallway"
value {
panels {
key: "HUNCHBACK"
value: 280
}
panels {
key: "SUSPICION"
value: 279
}
}
}
rooms {
key: "Intensify Room"
value {
panels {
key: "BETTER"
value: 252
}
panels {
key: "INJURY"
value: 254
}
panels {
key: "LARGE"
value: 250
}
panels {
key: "LIKE"
value: 249
}
panels {
key: "SMALL"
value: 248
}
panels {
key: "SWAY"
value: 255
}
panels {
key: "TERROR"
value: 251
}
panels {
key: "TURN"
value: 253
}
}
}
rooms {
key: "Synonyms Room"
value {
panels {
key: "ADORE"
value: 271
}
panels {
key: "FRIGHT"
value: 273
}
panels {
key: "FURY"
value: 277
}
panels {
key: "MASSIVE"
value: 272
}
panels {
key: "MINUTE"
value: 270
}
panels {
key: "SERIOUS"
value: 276
}
panels {
key: "SURPASS"
value: 274
}
panels {
key: "VERSE"
value: 275
}
}
}
rooms {
key: "Time Room"
value {
panels {
key: "BROODING"
value: 256
}
panels {
key: "CARE"
value: 257
}
panels {
key: "HOLE"
value: 262
}
panels {
key: "LIFE"
value: 258
}
panels {
key: "PRACTICE"
value: 260
}
panels {
key: "RHYTHM"
value: 263
}
panels {
key: "SUSPENSE"
value: 259
}
panels {
key: "WRITING"
value: 261
}
}
}
}
}
maps {
key: "the_ancient"
value {
doors {
key: "End Door"
value: 130
}
doors {
key: "Front Door"
value: 129
}
doors {
key: "Lavender Cubes"
value: 131
}
rooms {
key: "Inside"
value {
panels {
key: "COLOR"
value: 133
}
}
}
rooms {
key: "Outside"
value {
panels {
key: "THIS"
value: 132
}
}
}
}
}
maps {
key: "the_bearer"
value {
doors {
key: "Butterfly Entrance"
value: 37
}
doors {
key: "Control Center Brown Door"
value: 36
}
doors {
key: "Exit Door"
value: 34
}
doors {
key: "Overlook Door"
value: 33
}
doors {
key: "Q2 Door"
value: 35
}
rooms {
key: "Back Area"
value {
panels {
key: "COLOR"
value: 38
}
}
}
rooms {
key: "Blue Animal (View)"
value {
panels {
key: "HALF"
value: 65
}
}
}
rooms {
key: "Blue Planet (View)"
value {
panels {
key: "TUNE"
value: 64
}
}
}
rooms {
key: "Blue Town (View)"
value {
panels {
key: "LICE"
value: 63
}
}
}
rooms {
key: "Blue Vegetable (View)"
value {
panels {
key: "THORN"
value: 42
}
}
}
rooms {
key: "Butterfly Room"
value {
panels {
key: "DARKNESS"
value: 41
}
panels {
key: "VIBRANT"
value: 40
}
}
}
rooms {
key: "Entry"
value {
panels {
key: "CYCLING"
value: 58
}
panels {
key: "FLYTRAP"
value: 56
}
panels {
key: "HOVER"
value: 52
}
panels {
key: "MANE"
value: 54
}
panels {
key: "SCHOOL"
value: 55
}
panels {
key: "SQUISH"
value: 53
}
panels {
key: "TOAD"
value: 57
}
panels {
key: "VIEW"
value: 51
}
}
}
rooms {
key: "Green Planet (View)"
value {
panels {
key: "SOIL"
value: 43
}
}
}
rooms {
key: "Green Vegetable (View)"
value {
panels {
key: "SPIN"
value: 48
}
}
}
rooms {
key: "Orange Planet"
value {
panels {
key: "MAR"
value: 61
}
}
}
rooms {
key: "Orange Vegetable"
value {
panels {
key: "POTATO"
value: 39
}
}
}
rooms {
key: "Purple Animal (View)"
value {
panels {
key: "SUNBASS"
value: 59
}
}
}
rooms {
key: "Purple Planet (View)"
value {
panels {
key: "DOG"
value: 67
}
}
}
rooms {
key: "Purple Town (View)"
value {
panels {
key: "GRACEFUL"
value: 60
}
}
}
rooms {
key: "Purple Vegetable (View)"
value {
panels {
key: "AUBERGINE"
value: 66
}
}
}
rooms {
key: "Red Animal"
value {
panels {
key: "FOOLSHARK"
value: 62
}
}
}
rooms {
key: "Red Planet"
value {
panels {
key: "FUEL"
value: 46
}
}
}
rooms {
key: "Red Town"
value {
panels {
key: "DESTRUCTION"
value: 47
}
}
}
rooms {
key: "Red Vegetable"
value {
panels {
key: "CARD"
value: 49
}
}
}
rooms {
key: "Yellow Planet"
value {
panels {
key: "ZEUS"
value: 50
}
}
}
rooms {
key: "Yellow Vegetable"
value {
panels {
key: "CAKE"
value: 44
}
}
}
}
}
maps {
key: "the_between"
value {
doors {
key: "B2 Door"
value: 98
}
doors {
key: "Blue Puzzles"
value: 94
}
doors {
key: "Brown Puzzles"
value: 91
}
doors {
key: "Control Center Entrance"
value: 96
}
doors {
key: "Gallery Painting"
value: 95
}
doors {
key: "Gray Puzzles"
value: 92
}
doors {
key: "Green Puzzles"
value: 89
}
doors {
key: "Orange Puzzles"
value: 90
}
doors {
key: "Plaza Entrance"
value: 97
}
doors {
key: "Purple Puzzles"
value: 93
}
doors {
key: "Red Puzzles"
value: 87
}
doors {
key: "Yellow Puzzles"
value: 88
}
rooms {
key: "Control Center Side"
value {
panels {
key: "RIGHT"
value: 127
}
}
}
rooms {
key: "Main Area"
value {
panels {
key: "CAUGHT"
value: 112
}
panels {
key: "CHOP"
value: 119
}
panels {
key: "CHOP YOU PLOT"
value: 122
}
panels {
key: "CURTSY"
value: 103
}
panels {
key: "DOLLARS"
value: 100
}
panels {
key: "FOUR"
value: 111
}
panels {
key: "FOUR CAUGHT NET"
value: 114
}
panels {
key: "GREEN"
value: 123
}
panels {
key: "GREEN THINK LION"
value: 126
}
panels {
key: "KOI"
value: 106
}
panels {
key: "LION"
value: 125
}
panels {
key: "MOON"
value: 108
}
panels {
key: "MOON POWER"
value: 110
}
panels {
key: "NEAR"
value: 117
}
panels {
key: "NET"
value: 113
}
panels {
key: "NEW"
value: 99
}
panels {
key: "NEW DOLLARS"
value: 101
}
panels {
key: "OUT"
value: 115
}
panels {
key: "OUT SEW NEAR"
value: 118
}
panels {
key: "PLOT"
value: 121
}
panels {
key: "POWER"
value: 109
}
panels {
key: "SEW"
value: 116
}
panels {
key: "SHINE"
value: 102
}
panels {
key: "SHINE CURTSY"
value: 104
}
panels {
key: "SUN"
value: 105
}
panels {
key: "SUN KOI"
value: 107
}
panels {
key: "THINK"
value: 124
}
panels {
key: "YOU"
value: 120
}
}
}
}
}
maps {
key: "the_butterfly"
value {
rooms {
key: "Main Area"
value {
panels {
key: "ARTICLE"
value: 80
}
panels {
key: "BOOK"
value: 81
}
panels {
key: "BUILDING"
value: 74
}
panels {
key: "CATERPILLAR"
value: 76
}
panels {
key: "CONSTITUTION"
value: 70
}
panels {
key: "CREATURE"
value: 79
}
panels {
key: "GAME"
value: 71
}
panels {
key: "GENE"
value: 78
}
panels {
key: "KNOWLEDGE"
value: 77
}
panels {
key: "PERSONALITY"
value: 69
}
panels {
key: "POSITION (1)"
value: 83
}
panels {
key: "POSITION (2)"
value: 84
}
panels {
key: "POSITION (3)"
value: 85
}
panels {
key: "SCHOOL"
value: 73
}
panels {
key: "SCIENCE"
value: 72
}
panels {
key: "SPECIES"
value: 68
}
panels {
key: "STRUCTURE"
value: 75
}
panels {
key: "TEXT"
value: 82
}
}
}
rooms {
key: "Mastery"
value {
masteries {
key: "MASTERY"
value: 86
}
}
}
}
}
maps {
key: "the_colorful"
value {
doors {
key: "Black Door"
value: 2
}
doors {
key: "Blue Door"
value: 4
}
doors {
key: "Brown Door"
value: 11
}
doors {
key: "Cyan Door"
value: 9
}
doors {
key: "Gray Door"
value: 13
}
doors {
key: "Green Door"
value: 5
}
doors {
key: "Orange Door"
value: 10
}
doors {
key: "Purple Door"
value: 7
}
doors {
key: "Purple Side Entrance"
value: 8
}
doors {
key: "Red Door"
value: 3
}
doors {
key: "White Door"
value: 1
}
doors {
key: "Window Door"
value: 12
}
doors {
key: "Yellow Door"
value: 6
}
rooms {
key: "Black Room"
value {
panels {
key: "STARK"
value: 30
}
}
}
rooms {
key: "Blue Room"
value {
panels {
key: "VINE"
value: 18
}
}
}
rooms {
key: "Brown Room"
value {
panels {
key: "FIRE"
value: 19
}
}
}
rooms {
key: "Cyan Hallway"
value {
panels {
key: "CHAOS"
value: 24
}
panels {
key: "KOI"
value: 22
}
panels {
key: "WISH"
value: 23
}
}
}
rooms {
key: "Cyan Room"
value {
panels {
key: "BROTHER"
value: 25
}
panels {
key: "LOST"
value: 27
}
panels {
key: "MISTER"
value: 26
}
panels {
key: "SING"
value: 28
}
}
}
rooms {
key: "Gray Room"
value {
panels {
key: "MEND"
value: 20
}
}
}
rooms {
key: "Green Room"
value {
panels {
key: "MOTHER"
value: 21
}
}
}
rooms {
key: "Orange Room"
value {
panels {
key: "CLOUD"
value: 16
}
}
}
rooms {
key: "Purple Room"
value {
panels {
key: "FISH"
value: 17
}
}
}
rooms {
key: "Red Room"
value {
panels {
key: "SANDWICH"
value: 29
}
}
}
rooms {
key: "White Room"
value {
panels {
key: "BRIGHT"
value: 31
}
}
}
rooms {
key: "Window Room"
value {
panels {
key: "FADING"
value: 15
}
}
}
rooms {
key: "Yellow Room"
value {
panels {
key: "CIRCLE"
value: 14
}
}
}
}
}
maps {
key: "the_congruent"
value {
doors {
key: "C Keyholder Blocker"
value: 284
}
doors {
key: "C2 Door"
value: 285
}
doors {
key: "Flipped Magenta Door"
value: 282
}
doors {
key: "Flipped Yellow Door"
value: 283
}
doors {
key: "G Keyholder Blocker"
value: 289
}
doors {
key: "G2 Door"
value: 290
}
doors {
key: "Near C Keyholder Puzzles"
value: 288
}
doors {
key: "Obverse Magenta Door"
value: 281
}
doors {
key: "Obverse Yellow Door"
value: 286
}
doors {
key: "Obverse Yellow Puzzles"
value: 287
}
doors {
key: "T Keyholder Blocker"
value: 291
}
rooms {
key: "Flipped Magenta Room"
value {
panels {
key: "LAND"
value: 325
}
panels {
key: "LAST"
value: 320
}
panels {
key: "LATE"
value: 321
}
panels {
key: "LEFT"
value: 322
}
panels {
key: "LIST"
value: 323
}
panels {
key: "LOOK"
value: 316
}
panels {
key: "LUST"
value: 324
}
panels {
key: "MALE"
value: 319
}
panels {
key: "RULE"
value: 318
}
panels {
key: "SLOW"
value: 317
}
}
}
rooms {
key: "Flipped Yellow Room"
value {
panels {
key: "BRICK"
value: 311
}
panels {
key: "CAVE (1)"
value: 314
}
panels {
key: "CAVE (2)"
value: 315
}
panels {
key: "CROWN"
value: 309
}
panels {
key: "CRUEL"
value: 310
}
panels {
key: "DANCER"
value: 308
}
panels {
key: "FLACK"
value: 312
}
panels {
key: "TACK"
value: 313
}
}
}
rooms {
key: "Main Area"
value {
panels {
key: "COAT"
value: 301
}
panels {
key: "DIE"
value: 296
}
panels {
key: "LABS (1)"
value: 302
}
panels {
key: "LABS (2)"
value: 303
}
panels {
key: "LACE"
value: 300
}
panels {
key: "LAKE"
value: 295
}
panels {
key: "LANE (1)"
value: 292
}
panels {
key: "LANE (2)"
value: 293
}
panels {
key: "LANE (3)"
value: 294
}
panels {
key: "LIGHT"
value: 297
}
panels {
key: "LOVES"
value: 298
}
panels {
key: "RANGER"
value: 299
}
}
}
rooms {
key: "Obverse Yellow Room"
value {
panels {
key: "CIVIL"
value: 305
}
panels {
key: "CRABS"
value: 306
}
}
}
}
}
maps {
key: "the_darkroom"
value {
doors {
key: "Colorful Entrance"
value: 330
}
doors {
key: "Congruent Entrance"
value: 331
}
doors {
key: "Double Letter Panel Blockers"
value: 326
}
doors {
key: "Double Sided Entrance"
value: 332
}
doors {
key: "S1 Door"
value: 329
}
doors {
key: "Second Room Entrance"
value: 327
}
doors {
key: "Third Room Entrance"
value: 328
}
rooms {
key: "First Room"
value {
panels {
key: "BISON"
value: 343
}
panels {
key: "FISH"
value: 344
}
panels {
key: "KOI"
value: 346
}
panels {
key: "SHEEP"
value: 345
}
panels {
key: "TUNA"
value: 347
}
}
}
rooms {
key: "Second Room"
value {
panels {
key: "BISON"
value: 348
}
panels {
key: "FISH"
value: 349
}
panels {
key: "KOI"
value: 351
}
panels {
key: "SHEEP"
value: 350
}
panels {
key: "TUNA"
value: 352
}
}
}
rooms {
key: "Third Room"
value {
panels {
key: "COINS"
value: 335
}
panels {
key: "CULTS"
value: 333
}
panels {
key: "INKS"
value: 336
}
panels {
key: "KNOTS"
value: 337
}
panels {
key: "KOI"
value: 341
}
panels {
key: "LINKS"
value: 338
}
panels {
key: "LOCKS"
value: 339
}
panels {
key: "TOUCHES"
value: 340
}
panels {
key: "TURNS"
value: 334
}
}
}
}
}
maps {
key: "the_digital"
value {
doors {
key: "Control Center Blue Door"
value: 354
}
doors {
key: "Gallery Entrance"
value: 353
}
doors {
key: "Tree Entrance"
value: 355
}
rooms {
key: "Chamber"
value {
panels {
key: "BYE"
value: 368
}
panels {
key: "EYE"
value: 364
}
panels {
key: "HI"
value: 362
}
panels {
key: "HIGH"
value: 365
}
panels {
key: "I"
value: 361
}
panels {
key: "IN"
value: 363
}
panels {
key: "INN"
value: 366
}
panels {
key: "OUT"
value: 369
}
panels {
key: "YOU"
value: 367
}
}
}
rooms {
key: "Main Area"
value {
panels {
key: "COLOR"
value: 360
}
panels {
key: "HIT"
value: 357
}
panels {
key: "PAINTING"
value: 359
}
panels {
key: "TIN"
value: 358
}
}
}
rooms {
key: "Tree Area"
value {
panels {
key: "TREE"
value: 370
}
}
}
}
}
maps {
key: "the_entry"
value {
doors {
key: "Blue Alcove Entrance"
value: 144
}
doors {
key: "Blue Alcove Exit"
value: 140
}
doors {
key: "Colored Doors Area Entrance"
value: 165
}
doors {
key: "Composite Room Entrance"
value: 156
}
doors {
key: "Control Center White Door"
value: 154
}
doors {
key: "Corners Painting"
value: 139
}
doors {
key: "D Room Entrance"
value: 166
}
doors {
key: "Daedalus Entrance"
value: 158
}
doors {
key: "Flip Area Entrance"
value: 157
}
doors {
key: "Flipped Pyramid Area Entrance"
value: 162
}
doors {
key: "Flipped Second Room Left Door"
value: 147
}
doors {
key: "Flipped Second Room Right Door"
value: 146
}
doors {
key: "Gallery Entrance"
value: 168
}
doors {
key: "L Room Entrance"
value: 169
}
doors {
key: "Liberated Entrance"
value: 161
}
doors {
key: "Lime Room Entrance"
value: 152
}
doors {
key: "Link Area Entrance"
value: 135
}
doors {
key: "Literate Entrance"
value: 163
}
doors {
key: "Near D Room Painting"
value: 167
}
doors {
key: "Noon Door"
value: 142
}
doors {
key: "Orange Door Hider"
value: 151
}
doors {
key: "Parthenon Entrance"
value: 164
}
doors {
key: "Rabbithole Door"
value: 141
}
doors {
key: "Red Alcove Exit"
value: 138
}
doors {
key: "Red Blue Area Left Door"
value: 149
}
doors {
key: "Red Blue Area Right Door"
value: 150
}
doors {
key: "Red Room Painting"
value: 170
}
doors {
key: "Repetitive Entrance"
value: 159
}
doors {
key: "Revitalized Entrance"
value: 153
}
doors {
key: "Right Eye Entrance"
value: 148
}
doors {
key: "Scarf Door"
value: 143
}
doors {
key: "Second Room Left Door"
value: 145
}
doors {
key: "Second Room Right Door"
value: 137
}
doors {
key: "Shop Entrance"
value: 160
}
doors {
key: "Third Eye Painting"
value: 171
}
doors {
key: "Trick Door"
value: 134
}
doors {
key: "Trick To Shop Door"
value: 136
}
doors {
key: "X Area Entrance"
value: 155
}
rooms {
key: "Blue Alcove"
value {
panels {
key: "ARMY"
value: 213
}
panels {
key: "BLUE"
value: 212
}
}
}
rooms {
key: "Colored Doors Area"
value {
panels {
key: "OPEN"
value: 191
}
}
}
rooms {
key: "Ctrl Tutorial"
value {
panels {
key: "RIGHT"
value: 195
}
}
}
rooms {
key: "D Room"
value {
panels {
key: "BASEBALL"
value: 203
}
panels {
key: "BIKERS"
value: 204
}
panels {
key: "BLACK"
value: 207
}
panels {
key: "BOWLER"
value: 210
}
panels {
key: "CARPENTER"
value: 211
}
panels {
key: "COWBOY"
value: 208
}
panels {
key: "RED"
value: 205
}
panels {
key: "SPRAY"
value: 209
}
panels {
key: "SUN"
value: 206
}
}
}
rooms {
key: "Eye Room"
value {
panels {
key: "I"
value: 223
}
}
}
rooms {
key: "Flipped Link Area"
value {
panels {
key: "WANDER"
value: 172
}
}
}
rooms {
key: "Flipped Pyramid Area"
value {
panels {
key: "TURN (1)"
value: 178
}
panels {
key: "TURN (2)"
value: 179
}
}
}
rooms {
key: "Flipped Right Eye"
value {
panels {
key: "HERE"
value: 219
}
panels {
key: "WHERE"
value: 218
}
}
}
rooms {
key: "Flipped Second Room"
value {
panels {
key: "CLUE"
value: 176
}
panels {
key: "SLENDER"
value: 177
}
}
}
rooms {
key: "Gallery Return"
value {
panels {
key: "RETURN"
value: 192
}
}
}
rooms {
key: "Least Blue Last"
value {
panels {
key: "AIL"
value: 188
}
panels {
key: "CAPABLE (1)"
value: 180
}
panels {
key: "CAPABLE (2)"
value: 181
}
panels {
key: "CORNERS"
value: 189
}
panels {
key: "LABEL"
value: 187
}
panels {
key: "LUSTRE"
value: 182
}
panels {
key: "OLD"
value: 185
}
panels {
key: "STEALER"
value: 184
}
panels {
key: "TRUST"
value: 186
}
panels {
key: "WANT"
value: 183
}
}
}
rooms {
key: "Lime Room"
value {
panels {
key: "COLOR"
value: 175
}
panels {
key: "HIDE"
value: 173
}
panels {
key: "SEEK"
value: 174
}
}
}
rooms {
key: "Link Area"
value {
panels {
key: "WANDER"
value: 194
}
}
}
rooms {
key: "Parthenon Return"
value {
panels {
key: "RETURN"
value: 220
}
}
}
rooms {
key: "Rabbit Hole"
value {
panels {
key: "PUZZLE"
value: 217
}
}
}
rooms {
key: "Red Alcove"
value {
panels {
key: "BROW"
value: 221
}
panels {
key: "DEAD"
value: 222
}
}
}
rooms {
key: "Red Blue Halls"
value {
panels {
key: "CENTER"
value: 234
}
panels {
key: "CENTER DAY"
value: 236
}
panels {
key: "DAY"
value: 235
}
panels {
key: "RAIN"
value: 238
}
panels {
key: "RAIN WOMAN"
value: 240
}
panels {
key: "WANDER"
value: 237
}
panels {
key: "WOMAN"
value: 239
}
}
}
rooms {
key: "Right Eye"
value {
panels {
key: "EYE"
value: 214
}
panels {
key: "FAINT"
value: 216
}
panels {
key: "WANDER"
value: 215
}
}
}
rooms {
key: "Shop Entrance"
value {
panels {
key: "TURN"
value: 241
}
}
}
rooms {
key: "Starting Room"
value {
panels {
key: "EYE"
value: 226
}
panels {
key: "HI"
value: 224
}
panels {
key: "HINT"
value: 227
}
panels {
key: "THAN"
value: 229
}
panels {
key: "THIN"
value: 228
}
panels {
key: "TRICK"
value: 225
}
}
}
rooms {
key: "Trick Room"
value {
panels {
key: "INK"
value: 193
}
}
}
rooms {
key: "Wrath Room"
value {
panels {
key: "CORN"
value: 202
}
panels {
key: "DICE"
value: 201
}
panels {
key: "HOLE"
value: 199
}
panels {
key: "RABBIT"
value: 198
}
panels {
key: "WREATH"
value: 200
}
}
}
}
}
letters {
key: "a2"
value: 278
}
letters {
key: "b2"
value: 128
}
letters {
key: "c1"
value: 371
}
letters {
key: "c2"
value: 307
}
letters {
key: "d1"
value: 196
}
letters {
key: "g2"
value: 304
}
letters {
key: "h1"
value: 230
}
letters {
key: "i1"
value: 231
}
letters {
key: "l1"
value: 190
}
letters {
key: "n1"
value: 232
}
letters {
key: "p2"
value: 32
}
letters {
key: "q2"
value: 45
}
letters {
key: "s1"
value: 342
}
letters {
key: "t1"
value: 233
}
letters {
key: "u1"
value: 356
}
letters {
key: "x1"
value: 197
}