Well, I did manage to get the code generation running in just one day after all! That's means I have the entire weekend to rewrite the documentation, and there's still the final week after that for polishing everything off.
Here's a function as seen in one of the scripts (INHOME.EMC):
00000F88: global_sub0xF88() {
00000F8A: if ((-1 < var4)) {
00000F94: if (!(var17)) {
00000F9C: var17 = 1;
00000FA0: retval = auto_sub0x33C(30, 0, 28);
00000FAC: retval = o1_queryGameFlag(2);
00000FB2: localvar1 = retval;
00000FB6: retval = o1_queryGameFlag(1);
00000FBC: localvar2 = retval;
00000FC0: var3 = 1;
00000FC4: if ((localvar2 && localvar1)) {
00000FCE: retval = o2_zanthiaChat("At least I found my cauldron and my spellbook.", 29);
00000FD6: return;
00000FDA: }
00000FDA: if (localvar1) {
00000FE0: retval = o2_zanthiaChat("At least I found my cauldron.", 30);
00000FE8: return;
00000FEC: }
00000FEC: if (localvar2) {
00000FF2: retval = o2_zanthiaChat("At least I found my spellbook.", 31);
00000FFA: return;
00000FFE: }
00000FFE: retval = auto_sub0x33C(34, 0, 32);
0000100A: retval = auto_sub0x33C(35, 0, 33);
00001016: return;
0000101C: } else {
0000101C: var17 = 0;
00001020: retval = o2_randomSceneChat();
00001020: }
00001022: var3 = 1;
00001026: return;
0000102A: }
0000102A: retval = o2_useItemOnMainChar();
0000102C: return;
0000102C: }
Currently, the decompiler only works with scripts from the talkie version of Kyra2, as one of the functions differ in the number of arguments - but I'll get that fixed before GSoC is over.
Right now, though, I'll focus on the documentation - there's a lot of stuff that needs to be written and rewritten with the changes I've made for Kyra.