From 343dbb3088bc46bc2339d1221544ec95fe94bb4c Mon Sep 17 00:00:00 2001 From: Southclaws Date: Wed, 30 May 2018 20:56:26 +0100 Subject: [PATCH] implemented InitLanguages function which iterates the languages directory --- language.inc | 29 +++++++++++++++++++++++++++- pawn.json | 8 ++++++-- test.pwn | 53 +++++++++++++++++++--------------------------------- 3 files changed, 53 insertions(+), 37 deletions(-) diff --git a/language.inc b/language.inc index 6250fd5..3a227ea 100644 --- a/language.inc +++ b/language.inc @@ -10,8 +10,9 @@ #define _language_included #include -#include #include +#include +#include #include @@ -104,6 +105,32 @@ stock DefineLanguageReplacement(key[], val[]) { lang_TotalReplacements++; } +stock InitLanguages() { + new + Directory:dir = OpenDir("./scriptfiles/"DIRECTORY_LANGUAGES), + entry[256], + ENTRY_TYPE:type, + name[64]; + + while(DirNext(dir, type, entry)) { + if(type == E_REGULAR) { + PathBase(entry, name); + + dbg("language", "loading language file", + _s("entry", entry), + _s("name", name)); + + new id = InitLanguageFromFile(name); + if(id == -1) { + err("failed to load language", + _s("name", name)); + } + } + } + + CloseDir(dir); +} + stock InitLanguage(name[]) { for(new languageid ; languageid < lang_Total; ++languageid) { if(!strcmp(lang_Name[languageid], name)) { diff --git a/pawn.json b/pawn.json index b0cd708..7f9bed7 100644 --- a/pawn.json +++ b/pawn.json @@ -7,9 +7,13 @@ "sampctl/samp-stdlib", "Southclaws/samp-logger", "pawn-lang/YSI-Includes", - "BigETI/pawn-map" + "BigETI/pawn-map", + "Southclaws/pawn-fsutil:1.0.3" ], "runtime": { - "mode": "y_testing" + "version": "0.3.7", + "mode": "y_testing", + "rcon_password": "password", + "port": 7777 } } \ No newline at end of file diff --git a/test.pwn b/test.pwn index 937a3bb..76b2833 100644 --- a/test.pwn +++ b/test.pwn @@ -1,4 +1,4 @@ -#define MAX_LANGUAGE 2 +#pragma dynamic 16384 #include "language.inc" @@ -12,42 +12,27 @@ hook OnScriptInit() { dbg("language", "language debugging activated"); } -// Test:InitLanguageFromFile() { -// new ret; +Test:InitLanguages() { + InitLanguages(); +} -// ret = InitLanguageFromFile("English"); -// ASSERT(ret == 1); +// Test:AddLanguageEntry() { +// new +// languageid, +// ret; -// ret = InitLanguageFromFile("NonExistent"); -// ASSERT(ret == -2); +// languageid = InitLanguage("TestLanguage1"); +// ASSERT(languageid != -1); -// ret = InitLanguageFromFile("Empty"); -// ASSERT(ret == -3); +// ret = AddLanguageEntry(languageid, "L1KEY01", "value"); +// ASSERT(ret == 0); -// ret = InitLanguageFromFile("Espanol"); -// ASSERT(ret == 1); +// new result[MAX_LANGUAGE_ENTRY_LENGTH]; +// ret = _language_stringFromKey(languageid, "L1KEY01", result); +// ASSERT(ret == 0); +// ASSERT(!strcmp(result, "value")); +// printf("L1KEY01='%s'", result); -// ret = InitLanguageFromFile("English"); -// ASSERT(ret == -1); +// ret = _language_stringFromKey(languageid, "L1KEY02", result); +// ASSERT(ret == 1); // } - -Test:AddLanguageEntry() { - new - languageid, - ret; - - languageid = InitLanguage("TestLanguage1"); - ASSERT(languageid != -1); - - ret = AddLanguageEntry(languageid, "L1KEY01", "value"); - ASSERT(ret == 0); - - new result[MAX_LANGUAGE_ENTRY_LENGTH]; - ret = _language_stringFromKey(languageid, "L1KEY01", result); - ASSERT(ret == 0); - ASSERT(!strcmp(result, "value")); - printf("L1KEY01='%s'", result); - - ret = _language_stringFromKey(languageid, "L1KEY02", result); - ASSERT(ret == 1); -}