Code:
Esperanto::Esperanto() {
char* dest=(char*) this;
idLang Lang=idEnglish;
while(dest-(char*)this<=sizeof(*this)) {
*dest++*= *(((char*)&::Languages[Lang])+rand()%sizeof(Languages[Lang]));
if ((Lang = (idLang)((int)Lang + 1)) > idChinese) Lang=idEnglish;
}
for(int i=0; i<nRules; i++) if (GrammarRules[i]->Size>3) GrammarRules[i]=NULL;
}