Moon-Dog Geschrieben 12. März 2002 Geschrieben 12. März 2002 Ok, ich muss mich in nen Quellcode von jemand reinlesen, allerdings ist er dürftig, Beziehungsweise gar nicht kommenentiert und von programmieren hab ich nicht gaz so die Ahnung... Also folgendes die eine Komponente hat follgenden Quellcode: #include <cray.h> void IN_Init (void) { } void IN_Shutdown (void) { } void IN_Commands (void) { } void IN_Move (usercmd_t *cmd) { } nun meine Frage... bewirkt das überhaupt was? ich meine ist doch alles leer oder nicht?
gugelhupf Geschrieben 12. März 2002 Geschrieben 12. März 2002 richtig ! das bewirkt gar nichts ! was mich wundert ist, dass er das compiliert.... Leere Funktionen sollten m.E. nach so aussehen: void foo() { ; // !!!!!!!!!!!!! } Was das Pogramm sonst so macht können wir Dir nur sagen, wenn mehr Infos herausgibst ! Um was gehts eigentlich ????:confused:
Moon-Dog Geschrieben 12. März 2002 Autor Geschrieben 12. März 2002 im grunde ist es übungsprogramm glaub ich... soll wohl gesamt ein labrynth durch das man gehen kann... es besteht aus recht vielen komponenten und ich soll mal sehen wie man es vereinfachen kann... also denke ich mal da hat man sich ne nette aufgabe überlegt wie ich C besser lerne
Moon-Dog Geschrieben 12. März 2002 Autor Geschrieben 12. März 2002 die ist ziemlich lang... und definiert ein paar sachen und schließt einige viele weitere header dateien ein: hier mal ein kleiner auszug aus der cray.h #include "zone.h" #include "mathlib.h" typedef struct { vec3_t origin; vec3_t angles; int index; int frame; int color; int ground; int shine; } entity_state_t;
capitanx Geschrieben 12. März 2002 Geschrieben 12. März 2002 Ohne zusammenhang kann man damit soviel anfangen wie mit dem ersten
Orffi Geschrieben 19. März 2002 Geschrieben 19. März 2002 Leere Funktionen können durchaus komplett leer sein. void foo (void) { } ist also richtig und sollten keinen Compiler vor ein Problem stellen. Jan
Crush Geschrieben 19. März 2002 Geschrieben 19. März 2002 Für mich sieht das nach 3D-Daten aus. #include "zone.h" // wäre auch noch evtl. aufschlußreich einzusehen #include "mathlib.h" typedef struct { vec3_t origin; // Orginal Vektoren (x,y,z) in Grad oder Rad deshalb Vec3 _t könnte temporär bedeuten, dann kämen die woanders her vec3_t angles; // Die Rotationswinkel in Grad vermutlich int index; // Keine Ahnung int frame; // Ein Frame-Counter, damit man sieht, an welcher Stelle die Animation sich gerade befindet. int color; // Farbe (könnte auch Textur beinhalten) fürs Objekt, Fläche oder die Umgebung int ground; // Untergrund Farbe oder Textur int shine; // Vielleicht ein Schalter für Reflektionen? } entity_state_t; // aktueller Stand Es wäre möglich, daß es sich hier sogar nur um eine einzelne Vertice (=Dreiecksfläche) handelt und da sich Objekte wiederum woanders befinden, müßte also diese Struct in einem Array drin sein. Vec ist meistens die Abkürzung für Vector, 3 für 3 Koordinaten. Könnte allerdings auch ein Vector aus 3D-Koordinaten sein, jedoch dann ist eine einzelne Farbe etwas dürftig. Das sollst Du dann wohl selber ausfüllen: void IN_Init (void) // Hier müssen Startpositionen, tempöräre Daten, etc. initialisiert werden { } void IN_Shutdown (void) // Abschluß sollte reservierten Speicher freigeben { } void IN_Commands (void) // Hier sollte man bestimmte Befehle abarbeiten (z.B. "Kamera bewegen", "Sichtwinkel umschalten", "Textur wechseln", etc.) { } void IN_Move (usercmd_t *cmd) // Zeiger auf eine Bewegungsstruktur für Pfadanimationen o.ä. { } Es scheint mir, daß es sich hierbei um eine 3D-Engine handeln soll. Doch mit dem bissel hier kann man da immer noch nicht genaue Rückschlüsse ziehen. Es fehlt noch viel zu viel. Import von Objekt/Umgebungs/Texturdaten/Animationdaten, Rotationen, Animationen, Berechnung allgemein, Ausgabe (OpenGL, DX, Software-Renderer...) Matrizenfunktionen (sind praktisch immer notwendig bei aktuellen 3D-Renderern), und und und. Sollte es sich tatsächlich um sowas handeln, empfehle ich Dir mal z.B. einsicht in den Quake-Sourcecode zu nehmen (frei downloadbar auf IDs Homepage). Dann weißt Du, was da noch alles auf einen zukommen würde. Sowas ist selbst für Vollprofis eine echte Herausforderung, die nicht jeder bewältigt bekommt. Es müssen also noch weitaus mehr Strukturen, Funktionen, Klassen, usw. vorhanden sein, sonst kann man damit nichts anfangen. Solltest Du mit Vektorrechnung und Matrizen nicht so bewandelt sein, sieht es sehr schlecht für Dich aus, hier irgendwas Brauchbares draus zu machen.
Shadax Geschrieben 19. März 2002 Geschrieben 19. März 2002 Das sind scheinbar plattform-abhängige Funktionen, die (noch) nicht implementiert worden sind (oder deren Funktionalitäten an einer anderen Stelle implementiert sind). @Crush: das -ist- der Q source
Crush Geschrieben 19. März 2002 Geschrieben 19. März 2002 Das erklärt vieles. Vielleicht ist mir wegen der Gemeinsamkeiten auch deshalb der Quake-Source eingefallen. Die Commands sind dann bestimmt die Shell-Eingaben. Ich finde den jedoch extrem unübersichtlich und alles andere als schön um sowas zu lernen. Da gibt´s wesentlich bessere Beispiele. Ist schon böse und gemein einen Azubi an ´nen Q-Src ranzuhängen. Wetten, daß von den Leuten dort selber keiner durchblickt!
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden