Quick fix for 'null' handling in `.json` files

+ minor language file updates
+ whitespace/style nits
This commit is contained in:
GammaTendonNine 2020-11-19 02:29:44 -06:00
parent ca307de600
commit d814f7e012
10 changed files with 88 additions and 103 deletions

View File

@ -22,7 +22,7 @@ u8 languagesAmount = 0;
struct LanguageEntry *current_language;
void load_language(char *jsonTxt, s8 language){
void load_language(char *jsonTxt, s8 language) {
languages[language] = malloc (sizeof (struct LanguageEntry));
const char *endTxt;
@ -109,7 +109,7 @@ void load_language(char *jsonTxt, s8 language){
const cJSON *act = NULL;
char *courseName = cJSON_GetObjectItemCaseSensitive(course, "course")->valuestring;
if(courseID + 1 <= cJSON_GetArraySize(courses) - 1){
if(courseID + 1 <= cJSON_GetArraySize(courses) - 1) {
languages[language]->courses[courseID] = getTranslatedText(courseName);
courseID++;
}
@ -138,7 +138,7 @@ void load_language(char *jsonTxt, s8 language){
courseID++;
}
size_t stringSize = cJSON_GetArraySize(options) + cJSON_GetArraySize(strings) + padding;
size_t stringSize = cJSON_GetArraySize(options) + cJSON_GetArraySize(strings);
languages[language]->num_strings = stringSize;
languages[language]->strings = malloc(sizeof(struct StringTable) * stringSize);
@ -182,7 +182,7 @@ void load_language(char *jsonTxt, s8 language){
cJSON_Delete(json);
}
void alloc_languages(char *exePath, char *gamedir){
void alloc_languages(char *exePath, char *gamedir) {
languages = realloc(languages, sizeof(struct LanguageEntry*) * MAX_LANG);
char *lastSlash = NULL;
@ -210,9 +210,9 @@ void alloc_languages(char *exePath, char *gamedir){
DIR *lf = opendir(languagesDir);
struct dirent *de;
while ((de = readdir(lf)) != NULL){
while ((de = readdir(lf)) != NULL) {
const char *extension = get_filename_ext(de->d_name);
if(strcmp(extension, "json") == 0){
if(strcmp(extension, "json") == 0) {
char *file = malloc(FILENAME_MAX * sizeof(char*));
strcpy(file, languagesDir);
@ -221,7 +221,7 @@ void alloc_languages(char *exePath, char *gamedir){
printf("Loading File: %s\n", file);
char *jsonTxt = read_file(file);
if(jsonTxt != NULL){
if(jsonTxt != NULL) {
load_language(jsonTxt, languagesAmount - 1);
}else{
fprintf(stderr, "Loading File: Error reading '%s'\n", file);
@ -236,7 +236,7 @@ void alloc_languages(char *exePath, char *gamedir){
free(parent);
closedir(lf);
if(languagesAmount > 0){
if(languagesAmount > 0) {
languages = realloc(languages, sizeof(struct LanguageEntry*) * (languagesAmount));
}else{
fprintf(stderr, "Loading File: No language files found, aborting.\n");
@ -244,38 +244,38 @@ void alloc_languages(char *exePath, char *gamedir){
}
}
struct LanguageEntry *get_language_by_name(char *name){
struct LanguageEntry *get_language_by_name(char *name) {
int id = 0;
for(int l = 0; l < languagesAmount; l++){
if(strcmp(languages[l]->name, name) == 0){
for(int l = 0; l < languagesAmount; l++) {
if(strcmp(languages[l]->name, name) == 0) {
id = l;
break;
}
}
}
return languages[id];
return languages[id];
}
struct LanguageEntry *get_language(){
return current_language;
struct LanguageEntry *get_language() {
return current_language;
}
void set_language(struct LanguageEntry *new_language){
void set_language(struct LanguageEntry *new_language) {
current_language = new_language;
dialogPool = new_language->dialogs;
seg2_act_name_table = new_language->acts;
seg2_course_name_table = new_language->courses;
}
u8 *get_key_string(char *id){
u8 *get_key_string(char *id) {
struct LanguageEntry *current = current_language;
u8 *tmp = getTranslatedText("NONE");
for(int stringID = 0; stringID < current->num_strings; stringID++){
for(int stringID = 0; stringID < current->num_strings; stringID++) {
struct StringTable *str = current->strings[stringID];
if(strcmp(str->key, id) == 0){
if(strcmp(str->key, id) == 0) {
free(tmp);
tmp = str->value;
break;
@ -285,20 +285,20 @@ u8 *get_key_string(char *id){
return tmp;
}
void alloc_dialog_pool(char *exePath, char *gamedir){
void alloc_dialog_pool(char *exePath, char *gamedir) {
languages = malloc(sizeof(struct LanguageEntry*));
alloc_languages(exePath, gamedir);
if(configLanguage >= languagesAmount){
if(configLanguage >= languagesAmount) {
printf("Loading File: Configured language doesn't exist, resetting to defaults.\n");
configLanguage = 0;
}
set_language(languages[configLanguage]);
}
void dealloc_dialog_pool(void){
for(int l = 0; l < languagesAmount; l++){
void dealloc_dialog_pool(void) {
for(int l = 0; l < languagesAmount; l++) {
struct LanguageEntry * entry = languages[l];
for(int i = 0; i < entry->num_strings; i++) free(entry->strings[i]);
for(int i = 0; i < sizeof(entry->acts) / sizeof(entry->acts[0]); i++) free(entry->acts[i]);

View File

@ -3279,7 +3279,6 @@
" VANISH CAP UNDER THE MOAT",
" WING MARIO OVER THE RAINBOW",
" THE SECRET AQUARIUM",
null,
" CASTLE SECRET STARS"
],
"options": {
@ -3422,4 +3421,4 @@
"TEXT_FOR_MARIO": "...for Mario...",
"TEXT_FILE_MARIO_QUESTION": "Mario!"
}
}
}

View File

@ -3464,7 +3464,6 @@
" GORRA DE INVISIBILIDAD BAJO EL FOSO",
" MARIO VOLADOR SOBRE EL ARCO IRIS",
" EL ACUARIO SECRETO",
null,
" ESTRELLAS SECRETAS"
],
"options": {
@ -3608,4 +3607,3 @@
"TEXT_FILE_MARIO_QUESTION": "¡Mario!"
}
}

View File

@ -2633,7 +2633,7 @@
"puedes abrir la puerta con",
"la gran Estrella! Pero ",
"Bowser está adelante...",
"Oyes el llamado de la",
"¿Oyes el llamado de la",
"princesa?"
]
},
@ -3331,7 +3331,6 @@
" GORRA INVISIBLE BAJO EL FOSO",
" MARIO ALADO SOBRE EL ARCOÍRIS",
" EL ACUARIO SECRETO",
null,
" ESTRELLAS OCULTAS"
],
"options": {
@ -3475,4 +3474,3 @@
"TEXT_FILE_MARIO_QUESTION": "¡Mario!"
}
}

View File

@ -294,7 +294,7 @@
"lines": [
"Wow! Outra Power Star!",
"Mario ganha mais coragem",
"da Power Start",
"da Power Star",
"para o castelo.",
"Gostaria de salvar?",
"",
@ -336,12 +336,12 @@
"lines": [
"Eu sou Big Bob-omb, lord",
"de todas as coisas explosivas,",
"king dos ka-booms do",
"rei dos ka-booms do",
"mundo a fora!",
"Como pode escalar minha",
"montanha? Com que direito",
"você pisa na minha",
"imperial topo-da-montanha?",
"você pisa na meu",
"topo imperial?",
"Você pode ter feito meus",
"guardas de trouxas, mas nunca irá",
"escapar de mim...",
@ -355,7 +355,7 @@
"seu valor em batalha.",
"",
"Você pode me pegar",
"e me jogar nesse",
"e me jogar neste",
"território real? Eu acho",
"que não!"
]
@ -404,7 +404,7 @@
"lines": [
"Bem-vindo.",
"Ninguém está em casa!",
"Agora vaza--",
"Agora cai fora--",
"e não volte mais!",
"Gwa ha ha!"
]
@ -498,7 +498,7 @@
"width": 200,
"lines": [
"Para abrir a porta que",
"leva para escadaria 『sem fim』",
"leva à escadaria 『sem fim』",
"você precisa de 70",
"Power Stars.",
"Bwa ha ha!"
@ -510,7 +510,7 @@
"leftOffset": 30,
"width": 200,
"lines": [
"Olá! Aqui o Lakitu Bros.,",
"Olá! Aqui é o Lakitu Bros.,",
"com atualização ao vivo",
"do progresso de",
"Mario. Ele está prestes a",
@ -523,14 +523,14 @@
"",
"",
"E fechando o filme",
"técnicas serão reportadas",
"previamente, você pode dar",
"técnicas reportadas",
"anteriormente, você pode dar",
"uma olhada em volta com [C]> e",
"[C]<. Pressione [C]| para visualizar a",
"ação de uma distância.",
"Quando você não puder mais",
"mover a câmera, um",
"som irá disparar. Esse é",
"som irá disparar. Aqui é",
"o Lakitu Bros.,",
"desligando."
]
@ -774,7 +774,7 @@
"",
"Você pode pular para a ponta",
"do penhasco e segurar,",
"e você pode escala a",
"e você pode escalar a",
"ponta se você mover devagar.",
"Quando você desejar ir,",
"pressione [Z] ou pressione",
@ -814,7 +814,7 @@
"acordada, por que não",
"pegar um pequeno voo comigo?",
"Pressione e segure [A] para agarrar",
"Solte [A] para deixar.",
"Solte [A] para largar.",
"Eu te levo para onde",
"você desejar, desde que",
"minhas asas possam suportar.",
@ -854,7 +854,7 @@
"e então pular mais alto.",
"Próximo, pulo em distância",
"with Long Jump. Corra,",
"pressione [Z] to abaixar e então [A]",
"pressione [Z] para abaixar e então [A]",
"para saltar longe.",
"",
"Para fazer Wall Kick, pressione",
@ -886,7 +886,7 @@
"width": 200,
"lines": [
"Temporada na Snow Mountain",
"Cuidade com as condições",
"Cuidado com as condições",
"escorregadias! Por favor, entre",
"na cabana primeiro."
]
@ -924,7 +924,7 @@
"saltar, você irá executar o",
"Backward Somersault!",
"Sacou?",
"Tem mais. Abaixe and",
"Tem mais. Abaixe e",
"então salte para executar o",
"Long Jump! Ou abaixe e",
"ande para...deixa pra lá."
@ -968,7 +968,7 @@
"Somersault, corra, faça",
"faça uma curva em U e pule.",
"Você pode pegar bastante",
"ar com ambos os pulos."
"altura com ambos os pulos."
]
},
{
@ -978,7 +978,7 @@
"width": 200,
"lines": [
"Às vezes, se você passar",
"através de um anel vermelho ou",
"através de um anel de moedas ou",
"encontrar um ponto secreto em um",
"nível, um número vermelho irá",
"aparecer.",
@ -996,7 +996,7 @@
"Bem-vindo à neve",
"deslize! Salte! Para velocidade",
"cima, pressione para frente",
"no analógico. To ir devagar",
"no analógico. Para ir devagar",
"trás e puxe de volta."
]
},
@ -1052,7 +1052,7 @@
"bico...) Eu não",
"lembro quando deixer",
"ela.",
"Vamos ver...I parei",
"Vamos ver...Eu parei",
"para peixes e cubos de gelo,",
"E então...oohh! Eu",
"não sei!"
@ -1131,7 +1131,7 @@
"BRRR! Perigo de congelamento!",
"Não nade aqui.",
"Estou falando sério.",
"/--The Pinguim"
"/--O Pinguim"
]
},
{
@ -1388,7 +1388,7 @@
"",
"Eu nunca irei dizer!",
"",
"//--The Cap'n"
"//--O Capitão"
]
},
{
@ -1542,7 +1542,7 @@
"ou no molhado.",
"E onde a solução",
"se esconde?",
"The cidade recepciona os visitantes",
"A cidade recepciona os visitantes",
"com a profundidade que",
"elas entram."
]
@ -1553,7 +1553,7 @@
"leftOffset": 30,
"width": 200,
"lines": [
"Cuidado com o boina! Se",
"Cuidado com a boina! Se",
"você perder, você irá",
"levar dano facilmente.",
"",
@ -2942,7 +2942,7 @@
"castelo?",
"E salvou a princesa?",
"Eu sabia que poderia fazer isso!",
"Agora eu tenho um mensagem",
"Agora eu tenho uma mensagem",
"muito especial para você.",
"『Obrigado por jogar Super",
"Mario 64! Esse é o",
@ -3279,7 +3279,6 @@
" VANISH CAP ABAIXO DA PONTE",
" WING MARIO ALÉM DO ARCO-ÍRIS",
" O AQUÁRIO SECRETO",
null,
" ESTRELAS SECRETAS DO CASTELO"
],
"options": {
@ -3423,4 +3422,3 @@
"TEXT_FILE_MARIO_QUESTION": "Mario!"
}
}

View File

@ -139,7 +139,7 @@
"mountaintop, where the",
"Big Bob-omb was?",
"Whaddya say? When I say",
"『Go,』 let the race begin!",
"{12302}Go,{12303} let the race begin!",
"",
"Ready....",
"",
@ -498,7 +498,7 @@
"width": 200,
"lines": [
"To open the door that",
"leads to the 『endless』",
"leads to the {12302}endless{12303}",
"stairs, you need 70",
"Stars.",
"Bwa ha ha!"
@ -641,7 +641,7 @@
"width": 200,
"lines": [
"There are four camera, or",
"『[C],』 Buttons. Press [C]^",
"{12302}[C],{12303} Buttons. Press [C]^",
"to look around using the",
"Control Stick.",
"",
@ -679,7 +679,7 @@
"Press [R] again to switch",
"to Lakitu's camera.",
"Pause the game and",
"switch the mode to 『fix』",
"switch the mode to {12302}fix{12303}",
"the camera in place while",
"holding [R]. Give it a try!"
]
@ -1315,7 +1315,7 @@
"Just stop, stand still,",
"press Start to pause the",
"game, then select",
"『Exit Course.』",
"{12302}Exit Course.{12303}",
"",
"You don't have to collect",
"all Power Stars in one",
@ -1689,7 +1689,7 @@
"You've stepped right into",
"my trap, just as I knew",
"you would! I warn you,",
"『Friend,』 watch your",
"{12302}Friend,{12303} watch your",
"step!"
]
},
@ -1891,8 +1891,8 @@
"width": 200,
"lines": [
"The shadowy star in front",
"of you is a Star",
"Marker. When you collect",
"of you is a {12302}Star",
"Marker.{12303} When you collect",
"all 8 Red Coins, the Star",
"will appear here."
]
@ -2461,7 +2461,7 @@
"",
"Be careful, though.",
"Bowser and his band",
"wrote the book on 『bad.』",
"wrote the book on {12302}bad.{12303}",
"Take my advice: When you",
"need to recover from",
"injuries, collect coins.",
@ -2944,14 +2944,14 @@
"I knew you could do it!",
"Now I have a very special",
"message for you.",
"Thanks for playing Super",
"{12302}Thanks for playing Super",
"Mario 64! This is the",
"end of the game, but not",
"the end of the fun. We want you to keep on",
"playing, so we have a",
"little something for you.",
"We hope that you like it!",
"Enjoy!!! ",
"Enjoy!!! {12303}",
"",
"The Super Mario 64 Team"
]
@ -3279,7 +3279,6 @@
" VANISH CAP UNDER THE MOAT",
" WING MARIO OVER THE RAINBOW",
" THE SECRET AQUARIUM",
null,
" CASTLE SECRET STARS"
],
"options": {
@ -3422,4 +3421,4 @@
"TEXT_FOR_MARIO": "...for Mario...",
"TEXT_FILE_MARIO_QUESTION": "Mario!"
}
}
}

View File

@ -3464,7 +3464,6 @@
" GORRA DE INVISIBILIDAD BAJO EL FOSO",
" MARIO VOLADOR SOBRE EL ARCO IRIS",
" EL ACUARIO SECRETO",
null,
" ESTRELLAS SECRETAS"
],
"options": {
@ -3608,4 +3607,3 @@
"TEXT_FILE_MARIO_QUESTION": "{00161}Mario!"
}
}

View File

@ -2633,7 +2633,7 @@
"puedes abrir la puerta con",
"la gran Estrella! Pero ",
"Bowser est{00225} adelante...",
"Oyes el llamado de la",
"{00191}Oyes el llamado de la",
"princesa?"
]
},
@ -3331,7 +3331,6 @@
" GORRA INVISIBLE BAJO EL FOSO",
" MARIO ALADO SOBRE EL ARCO{00205}RIS",
" EL ACUARIO SECRETO",
null,
" ESTRELLAS OCULTAS"
],
"options": {
@ -3475,4 +3474,3 @@
"TEXT_FILE_MARIO_QUESTION": "{00161}Mario!"
}
}

View File

@ -3465,4 +3465,3 @@
"TEXT_FILE_MARIO_QUESTION": "Mario!"
}
}

View File

@ -294,7 +294,7 @@
"lines": [
"Wow! Outra Power Star!",
"Mario ganha mais coragem",
"da Power Start",
"da Power Star",
"para o castelo.",
"Gostaria de salvar?",
"",
@ -336,12 +336,12 @@
"lines": [
"Eu sou Big Bob-omb, lord",
"de todas as coisas explosivas,",
"king dos ka-booms do",
"rei dos ka-booms do",
"mundo a fora!",
"Como pode escalar minha",
"montanha? Com que direito",
"voc{00234} pisa na minha",
"imperial topo-da-montanha?",
"voc{00234} pisa na meu",
"topo imperial?",
"Voc{00234} pode ter feito meus",
"guardas de trouxas, mas nunca ir{00225}",
"escapar de mim...",
@ -355,7 +355,7 @@
"seu valor em batalha.",
"",
"Voc{00234} pode me pegar",
"e me jogar nesse",
"e me jogar neste",
"territ{00243}rio real? Eu acho",
"que n{00227}o!"
]
@ -404,7 +404,7 @@
"lines": [
"Bem-vindo.",
"Ningu{00233}m est{00225} em casa!",
"Agora vaza--",
"Agora cai fora--",
"e n{00227}o volte mais!",
"Gwa ha ha!"
]
@ -498,7 +498,7 @@
"width": 200,
"lines": [
"Para abrir a porta que",
"leva para escadaria {12302}sem fim{12303}",
"leva {00224} escadaria {12302}sem fim{12303}",
"voc{00234} precisa de 70",
"Power Stars.",
"Bwa ha ha!"
@ -510,7 +510,7 @@
"leftOffset": 30,
"width": 200,
"lines": [
"Ol{00225}! Aqui o Lakitu Bros.,",
"Ol{00225}! Aqui {00233} o Lakitu Bros.,",
"com atualiza{00231}{00227}o ao vivo",
"do progresso de",
"Mario. Ele est{00225} prestes a",
@ -523,14 +523,14 @@
"",
"",
"E fechando o filme",
"t{00233}cnicas ser{00227}o reportadas",
"previamente, voc{00234} pode dar",
"t{00233}cnicas reportadas",
"anteriormente, voc{00234} pode dar",
"uma olhada em volta com [C]> e",
"[C]<. Pressione [C]| para visualizar a",
"a{00231}{00227}o de uma dist{00226}ncia.",
"Quando voc{00234} n{00227}o puder mais",
"mover a c{00226}mera, um",
"som ir{00225} disparar. Esse {00233}",
"som ir{00225} disparar. Aqui {00233}",
"o Lakitu Bros.,",
"desligando."
]
@ -774,7 +774,7 @@
"",
"Voc{00234} pode pular para a ponta",
"do penhasco e segurar,",
"e voc{00234} pode escala a",
"e voc{00234} pode escalar a",
"ponta se voc{00234} mover devagar.",
"Quando voc{00234} desejar ir,",
"pressione [Z] ou pressione",
@ -814,7 +814,7 @@
"acordada, por que n{00227}o",
"pegar um pequeno voo comigo?",
"Pressione e segure [A] para agarrar",
"Solte [A] para deixar.",
"Solte [A] para largar.",
"Eu te levo para onde",
"voc{00234} desejar, desde que",
"minhas asas possam suportar.",
@ -854,7 +854,7 @@
"e ent{00227}o pular mais alto.",
"Pr{00243}ximo, pulo em dist{00226}ncia",
"with Long Jump. Corra,",
"pressione [Z] to abaixar e ent{00227}o [A]",
"pressione [Z] para abaixar e ent{00227}o [A]",
"para saltar longe.",
"",
"Para fazer Wall Kick, pressione",
@ -886,7 +886,7 @@
"width": 200,
"lines": [
"Temporada na Snow Mountain",
"Cuidade com as condi{00231}{00245}es",
"Cuidado com as condi{00231}{00245}es",
"escorregadias! Por favor, entre",
"na cabana primeiro."
]
@ -924,7 +924,7 @@
"saltar, voc{00234} ir{00225} executar o",
"Backward Somersault!",
"Sacou?",
"Tem mais. Abaixe and",
"Tem mais. Abaixe e",
"ent{00227}o salte para executar o",
"Long Jump! Ou abaixe e",
"ande para...deixa pra l{00225}."
@ -968,7 +968,7 @@
"Somersault, corra, fa{00231}a",
"fa{00231}a uma curva em U e pule.",
"Voc{00234} pode pegar bastante",
"ar com ambos os pulos."
"altura com ambos os pulos."
]
},
{
@ -978,7 +978,7 @@
"width": 200,
"lines": [
"{00192}s vezes, se voc{00234} passar",
"atrav{00233}s de um anel vermelho ou",
"atrav{00233}s de um anel de moedas ou",
"encontrar um ponto secreto em um",
"n{00237}vel, um n{00250}mero vermelho ir{00225}",
"aparecer.",
@ -996,7 +996,7 @@
"Bem-vindo {00224} neve",
"deslize! Salte! Para velocidade",
"cima, pressione para frente",
"no anal{00243}gico. To ir devagar",
"no anal{00243}gico. Para ir devagar",
"tr{00225}s e puxe de volta."
]
},
@ -1052,7 +1052,7 @@
"bico...) Eu n{00227}o",
"lembro quando deixer",
"ela.",
"Vamos ver...I parei",
"Vamos ver...Eu parei",
"para peixes e cubos de gelo,",
"E ent{00227}o...oohh! Eu",
"n{00227}o sei!"
@ -1131,7 +1131,7 @@
"BRRR! Perigo de congelamento!",
"N{00227}o nade aqui.",
"Estou falando s{00233}rio.",
"/--The Pinguim"
"/--O Pinguim"
]
},
{
@ -1388,7 +1388,7 @@
"",
"Eu nunca irei dizer!",
"",
"//--The Cap'n"
"//--O Capit{00227}o"
]
},
{
@ -1542,7 +1542,7 @@
"ou no molhado.",
"E onde a solu{00231}{00227}o",
"se esconde?",
"The cidade recepciona os visitantes",
"A cidade recepciona os visitantes",
"com a profundidade que",
"elas entram."
]
@ -1553,7 +1553,7 @@
"leftOffset": 30,
"width": 200,
"lines": [
"Cuidado com o boina! Se",
"Cuidado com a boina! Se",
"voc{00234} perder, voc{00234} ir{00225}",
"levar dano facilmente.",
"",
@ -2942,7 +2942,7 @@
"castelo?",
"E salvou a princesa?",
"Eu sabia que poderia fazer isso!",
"Agora eu tenho um mensagem",
"Agora eu tenho uma mensagem",
"muito especial para voc{00234}.",
"{12302}Obrigado por jogar Super",
"Mario 64! Esse {00233} o",
@ -3279,7 +3279,6 @@
" VANISH CAP ABAIXO DA PONTE",
" WING MARIO AL{00201}M DO ARCO-{00205}RIS",
" O AQU{00193}RIO SECRETO",
null,
" ESTRELAS SECRETAS DO CASTELO"
],
"options": {
@ -3423,4 +3422,3 @@
"TEXT_FILE_MARIO_QUESTION": "Mario!"
}
}