Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

25.08.2003, 11:23

TriBase: Konfigurationsdialog aus Datei laden?

Hi,

ich möchte, dass in meinem Pogramm nicht der Konfigurationsdialog angezeigt werden. Der Inhalt des Dialoges soll stattdessen aus einer Datei geladen wird.

Quellcode

1
2
3
4
5
    // Die TriBase-Engine initialisieren und den Konfigurationsdialog aufrufen
    if(tbInit()) return TB_ERROR;
    r = tbDoConfigDialog(&m_Config); // Hier soll der Inhalt einfach aus ner Datei geladen werden (default.tbc)
    if(r == TB_CANCELED) return TB_CANCELED;
    else if(r) TB_ERROR("Engine konnte nicht initialisiert werden!", r);


Hat jemand ein Idee, wie das geht?!

Ausserdem, geht es, den aktuellen Konfigurations-Dialog-Inhalt in eine Datei zu speichern?

Der Hintergrund: Ich möchte, dass beim Starten meines Spieles NICHT IMMER der Konfigurationsdialog angezeigt wird.

Desswegen, wird dieser aus einer Datei geladen (default.tbc). In einem Zusatzpogramm wird der Konfigurations-Dialog aufgerufen, dann wird ein System-Text ausgeführt, und, wenn alles OK ist, soll der Inhalt unter default.tbc gespeichert werden...

Schüssi,

Chrissi

Anonymous

unregistriert

2

08.09.2003, 01:12

Hey,,

Schau mal hier : http://scherfgen-software.net/forum/view…5d9b54d03dcadc7

Ich habe es folgender Maßen gelöst :

Zuerst habe ich alles unverändert gelassen und meine Applikation gestartet, wo dann der Konfigurationsdialog der Engine angezeigt wurde, dort habe ich alle Einstellungen vorgenommen und diese dann im Projekt Ordner als "Config.drxc" gespeichert.

Als Basis dient hier wieder Davids Galactica Spiel :

Dann habe ich folgenden Code ergänzt :

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
//=============================================================================
// Initialisiert das Spiel komplett
drxResult CGalactica::Init()
{
    drxResult r;
    // 02.09.2003 (Sascha Karlhoff)
    char  acFilename[256];
    FILE* pFile;
    // 02.09.2003 (Sascha Karlhoff) ENDE
    
    // Alles zurücksetzen
    ZeroMemory(this, sizeof(CGalactica));

    // Die DiReX-Engine initialisieren
    if(drxInit()) 
    return DRX_ERROR;

    //############################################################################  
    // 02.09.2003 (Sascha Karlhoff)
    // Konfigurationsdaten aus der Config.drxc Datei laden, falls vorhanden
    // ansonsten, den Engine Cofig Dialog anzeigen und benutzen !!!
    
    // Den Dateinamen der Config Datei bekannt machen und übergeben
    strcpy(acFilename, "Config.drxc");
    pFile = fopen(acFilename, "r");
    // Config Datei vorhanden
    if(pFile != NULL)
    {
        fread(&m_Config, sizeof(drxConfig), 1, pFile);
        fclose(pFile);
        // Den Erfolg in die Log Datei eintragen
        DRX_INFO("Die Config Datei : ""Config.drxc"" wurde gefunden und geladen !");
    }
    // Config Datei nicht vorhanden
    if(pFile == NULL) 
    {
        // Messagebox mit Fehlermeldung
        MessageBox(NULL, "Fehler beim Laden der Config Datei : ""Config.drxc"" !",
        "Fehler", MB_OK | MB_ICONEXCLAMATION);
        // Den Fehlschlag in die Log Datei eintragen
        DRX_WARNING("Fehler beim Laden der Config Datei : ""Config.drxc"" !");
        r = drxDoConfigDialog(&m_Config);
        if(r == DRX_CANCELED) return DRX_CANCELED;
        else if(r) DRX_ERROR("Engine konnte nicht initialisiert werden!", r);
    }
    // 02.09.2003 (Sascha Karlhoff) ENDE
    //############################################################################

    // 25.08.2003 (Sascha Karlhoff)
    // NETZWERK TEST ***
    m_pNetwork->Init();
    // NETZWERK TEST ENDE ***

    // Laden...
    if(Load()) DRX_ERROR("Fehler beim Laden des Spiels!", DRX_ERROR);

    // Klassen für alle Spielzustände erstellen
    m_pIntro = new CIntro;
    m_pMainMenu = new CMainMenu;
    m_pGame = new CGame;
    // 29.08.2003 (Sascha Karlhoff) Die Consolen Klasse erstellen
    //m_pConsole = new CConsole;
    
    // Schiffs- und Waffentypen laden (noch ohne Modelle)
    m_pGame->LoadShipTypes(FALSE);
    m_pGame->LoadWeaponTypes(FALSE);

    // Wir beginnen beim Intro!
    SetGameState(GS_INTRO);

    return DRX_OK;
}

3

09.09.2003, 16:20

Danke. Hat mir sehr geholfen. Ich schreib dann noch eine Funktion, um m_Config in eine Datei zu schreiben

Anonymous

unregistriert

4

09.09.2003, 18:49

Du brauchst doch nur einmal zum Anfang den Config Dialog aufrufen, und dann die Einstellugen von dort aus in z,B. "Config.tbc" im Projekt Ordner speichern wo die EXE auch liegt, dann hast du die Daten in einer Datei, so habe ich es auch gemacht.

Wenn Du mein Beispiel übernimmst, dann wird zuerst geprüft, ob die Config Datei vorhanden ist, ist dies der Fall werden die Daten aus dieser Datei geladen und der Erfolg wird in die Log Datei geschrieben, kann man später ja wieder deaktivieren, das war nur um den Vorgang zu überprüfen. War das auf finden der Config Datei nicht erfolgreich, wird ein Hinweis Dialog angezeigt das die Datei nicht gefunden, bzw. geladen werden konnte, der Fehler wird dann als Warnung ebenfalls in die Log Datei eingetragen und anschliessend wird dann der Config Dialog aufgerufen, indem man dann seine Einstellungen vornehmen kann und das Spiel wird dann mit diesen Daten gestartet. :jojo: 8) :huhu:

Werbeanzeige