Just as an example for TempQuestEnemy.c. The code in characters_init.c tries to dynamically load a .c file, and dynamically call a function:
if (FindFile("PROGRAM\Characters\init", "*.c", fname) != "") { if (LoadSegment("Characters\init\" + fname)) { call func(&n); UnloadSegment("Characters\init\" + fname); } }
In the case of the problem, fname is "TempQuestEnemy.c" and func = "CreateTempQuestEnemyCharacters". So it will try to call that function after it loads the .c file. But in that TempQuestEnemy.c file, there is no function in the script I have from you. It looks like this:
int CreateTempQuestEnemy(int n)
Notice that it is the wrong name, and also does not pass a reference type for &n, but rather an int n. It should look like this:
void CreateTempQuestEnemyCharacters(ref n)
What happens with that original script is nothing happens and an error is logged that it can't find function CreateTempQuestEnemyCharacters in TempQuestEnemy.c. That is not a porting problem and should not work no matter if it is Storm 2.0, Storm 2.8 or Maelstrom.