19.04.2015, 15:37
(Dieser Beitrag wurde zuletzt bearbeitet: 19.04.2015, 18:11 von BastyCDGS.)
(19.04.2015, 14:52)Rabenaas schrieb: Schau mal hier https://github.com/Henne/BrightEyes-reveng
Was sollte denn daran hindern, einen Dungeongenerator zu schreiben?
Der Dungeongenerator selber ist da weniger das Problem. Ich dachte da eher an das Eventsystem für die Dialoge und ähnliches. So das man halt auch komplexe Abenteuer machen kann. Im Idealfall sollte man natürlich auch die Originalabenteuer exakt nachbauen können.
Ich habe mir eben mal seg031.cpp angeschaut, eat_while_drinking. Da fiel mir was auf:
hero += 0x6da in der for-Schleife, das sieht mir ganz danach aus, als ob das sizeof (struct hero) ist, und könnte dementspr. angepasst werden.
EDIT: Die .CHR-Dateien sind 0x6da = 1754 Bytes groß. Passt also. Kann es sein (habe die Save Game Funktion noch nicht gefunden, dass das Hero Feld einfach direkt geschrieben wird ohne Änderungen beim save_game? Wenn dem so
sein sollte, können wir direkt die struct von 'nem Savegame-Editor mit Source übernehmen und haben schon mal
das meiste. Dann wird auch bei vielen Funktionen klarer, was sie bewirken.
Ich bin gerade bei seg036_00ae. Da werden 1 BP oder 2 BP abgezogen und die Richtung eines Chars gewechselt. 1 BP kostet ja entweder laufen oder Gegenstand wegwerfen. 2 BP Gegenstand / Waffe wechseln...
EDIT2: Für die hero-struct hätte ich noch 'ne Idee, und zwar anhand der Erkenntnisse aus dem Savegame-Editoren sollte
es ein leichtes sein, die entspr. Felder zu zuordnen. Das macht auch den Code deutlich besser lesbar wenn da steht
hero->health bzw. hero.health statt hero+0x21 oder so
Ein kleinen Fehler habe ich grad noch in der symbols.h gefunden, es muss KNIFE heißen ned KNIVE
EDIT3: So ich denke die ENEMIES hab ich auch, es ist:
p_datseg + 0xd0df
sizeof (struct enemy) = 0x3e
Das sieht man in der KI_can_attack_neighbour sehr gut, wo die Abfrage kommt ob target zw. 10 und 30 (es gibt 20 Gegner max, richtig?).
Best regards,
:-) Basty/CDGS (-:
:-) Basty/CDGS (-: