diff --git a/data/rooms/00.txt b/data/rooms/00.txt index 412edca..722d63b 100644 --- a/data/rooms/00.txt +++ b/data/rooms/00.txt @@ -7,12 +7,12 @@ wall-texture: 0 door-texture: 0 under-door-texture: 0 -actor: { +actor{ template: box pos: 32 32 0 } -actor: { +actor{ template: box pos: 32 32 8 } diff --git a/source/jfile.cpp b/source/jfile.cpp index 90c20fa..1b8bee6 100644 --- a/source/jfile.cpp +++ b/source/jfile.cpp @@ -424,6 +424,8 @@ namespace file saveConfigValues(); } + char tmp[255]; + void ignoreWhitespace(const char **buffer, const bool stopOnLineEnd=false) { if (!stopOnLineEnd) @@ -435,32 +437,48 @@ namespace file // Llig una cadena de l'arxiu especificat. En cas de no poder, torna nullptr. const char *readString(const char **buffer, const bool stopOnLineEnd=false) { - ignoreWhitespace(buffer); + ignoreWhitespace(buffer, stopOnLineEnd); + + if (**buffer==0) return nullptr; + + if (stopOnLineEnd && **buffer=='\n') + { + (*buffer)++; + return nullptr; + } + + int i=0; + while (**buffer>32 && i<255) + { + tmp[i++] = *(*buffer++); + } + return tmp; } // Llig un enter de l'arxiu especificat. En cas de no poder, torna 0. int readInt(const char **buffer) { ignoreWhitespace(buffer); + if (**buffer==0) return 0; return atoi(readString(buffer)); } // Escriu una cadena a l'arxiu especificat. - void writeString(const char **buffer, const char* str) + void writeString(FILE *f, const char* str) { - + fprintf(f, "%s ", str); } // Escriu un enter a l'arxiu especificat. - void writeInt(const char **buffer, const int value) + void writeInt(FILE *f, const int value) { - + fprintf(f, "%i ", value); } // Escriu un salt de linea a l'arxiu especificat. - void jumpLine(const char **buffer) + void jumpLine(FILE *f) { - + fprintf(f, "\n"); } } \ No newline at end of file diff --git a/source/jfile.h b/source/jfile.h index 9cae587..143fc26 100644 --- a/source/jfile.h +++ b/source/jfile.h @@ -76,14 +76,14 @@ namespace file /// @brief Escriu una cadena a l'arxiu especificat. /// @param buffer punter a l'arxiu on escriure /// @param str la cadena a escriure - void writeString(const char **buffer, const char* str); + void writeString(FILE *f, const char* str); /// @brief Escriu un enter a l'arxiu especificat. /// @param buffer punter a l'arxiu on escriure /// @param value L'enter a escriure - void writeInt(const char **buffer, const int value); + void writeInt(FILE *f, const int value); /// @brief Escriu un salt de linea a l'arxiu especificat. /// @param buffer punter a'larxiu on escriure - void jumpLine(const char **buffer); + void jumpLine(FILE *f); }