rendered paste body// ETH32 - an Enemy Territory cheat for windows
// Copyright (c) 2007 eth32 team
// www.cheatersutopia.com & www.nixcoders.org
#include "eth32.h"
struct {
char *src;
char *tgt;
} langPairs[] = {
{ "en", "fr" },
{ "en", "de" },
{ "en", "nl" },
{ "en", "it" },
{ "en", "pt" },
{ "en", "es" },
};
HANDLE trHandle = NULL;
DWORD translateText(const char *lang1, const char *lang2, const char *text);
void translateCommand(void)
{
static int pairs = sizeof(langPairs) / sizeof(langPairs[0]);
int argc = Syscall.UI_Argc();
if (argc != 4)
{
orig_syscall(UI_PRINT, "^dERROR: ^nWrong syntax.\n");
orig_syscall(UI_PRINT, "^dUSAGE: ^n" ETH32_PREFIX "translate lang1 lang2 your text here\n");
return;
}
const char *lang1 = Syscall.UI_Argv(1);
const char *lang2 = Syscall.UI_Argv(2);
const char *text = Syscall.UI_Argv(3);
Debug.Log("Pairs: %s %s [ %s ]", lang1, lang2, text);
int c = 0;
for (; c < pairs; c++)
if (!strcmp(lang1, langPairs[c].src) && !strcmp(lang2, langPairs[c].tgt))
break;
if (c == pairs)
{
orig_syscall(UI_PRINT, "^dERROR: ^nWrong language pair!\n");
return;
}
if (trHandle)
{
orig_syscall(UI_PRINT, "^dERROR: ^nAnother text is currently being translated, try again later.\n");
return;
}
orig_syscall(UI_PRINT, "^dTranslating..\n");
trHandle = CTHREAD(translateText(lang1, lang2, text));
}
DWORD translateText(const char *lang1, const char *lang2, const char *text)
{
// query babelfish code will be here
CloseHandle(trHandle);
trHandle = NULL;
return 0;
}