Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Stadt-Events in Datei 067.cpp
#1
Hallo, ich bin gerade dabei, die CPP-Dateien von BrightEyes zu durchforsten (nach markanten Angaben, die mir ein besseres Verständnis der Programmierung erlauben). In der Datei 067.cpp bin ich auf 9 verschiedene Stadt-Events gestoßen, ohne zu erkennen, um welche es sich dabei konkret handelt. Weiß da jemand von euch Bescheid, oder weiß, wo diese definiert sind? Die jeweiligen Funktionen lauten void city_event_1(void), wobei die 1 als Event-ID zwischen 1 und 9 variiert.
"Save early and save often!" - Speichere oft und speichere früh! - Ist eine alte Zockerweisheit.
Zitieren
#2
Pfff, gute Frage! Habe mal einen kurzen Blick darüber geworfen und spontan keine Eingebung gehabt, sorry :(
Zitieren
#3
Das sind die Stadt-Zufallsereignisse (Taschendieb, Straßenhändler etc.). Im Quelltext ist teilweise reinkommentiert, worum es sich im Einzelnen handelt. Um ausgehend von dem Quellcode die Ereignisse komplett zu verstehen, muss man sich die Textblöcke anschauen, die von der Funktion get_tx(..) aus STRASSE.LTX (ein Teil der entpackten SCHICK.DAT) geladen und angezeigt werden.

Ausgelöst werden die Ereignisse via city_event_switch(), und der einzige Aufruf davon ist in seg066.cpp. Dort sieht man auch genaueres:
Die Ereignisse können nur in den 4 großen Städten Thorwal, Prem, Phexcaer und Oberorken und nur zwischen 8 und 20 Uhr ausgelöst werden. Sind diese Voraussetzungen erfüllt, so findet pro Schritt mit einer Wahrscheinlichkeit von 1% ein Zufallsereigniss statt, welches dann wieder gleichverteilt zufällig unter den 9 Möglichkeiten ausgewürfelt wird.

An dieser Stelle möchte ich auch kurz Werbung machen für meinen BrightEyes-Fork. Ich habe u.a. etliche "magic numbers" durch Konstantennamen ersetzt, so dass diese Stellen jetzt besser lesbar sind. Eigentlich hätte ich das ja sehr gerne wieder im Original vereint, aber dessen Autor HenneNWH (vor dessen Leistung ich allergrößten Respekt habe...) ist seit einiger Zeit inaktiv.
Zitieren




Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste