[Niby prowo] Kod zrodlowy Silnika graficznego Gothica zEngine (nie Zengine) 35092 72

O temacie

Autor Hydrosol

Zaczęty 13.01.2016 roku

Wyświetleń 35092

Odpowiedzi 72

Fabio

Fabio

The Modders
posty3477
Propsy2157
ProfesjaSkrypter
  • The Modders
@inż. Avallach
@Sawik

 Ktoś mi wyjaśni o co tu właściwie chodzi?


Moze do mnie to pytanie ? Ja zalozylem ten temat, szybko streszcze, jestem w posiadaniu kodu gothica czyli silnika gry z okresu pierwszej alphy ale ktos sie podszywa pod moje osiagniecia. Jak wiadomo wyciaganie kodu z dll a pozniej optymalizowanie go do c++ troche zajmuje, dlatego prosze o chwile cierpliwosci. To wszystko

Dobra dobra, skończ pierdolić. Nam modderom w niczym to nie pomoże, jak chcesz się pochwalić to idź gdzie indziej. Nikt tu nad tym się nie będzie spuszczał, bo właściwie po co? Skoro nic z tym nie można zrobić to cały ten temat nie ma sensu.

Kelten

Kelten

Gry (themodders@telegram)
posty639
Propsy514
ProfesjaKompozytor
  • Gry (themodders@telegram)
Znowu maść na ból dupy będzie potrzebna...
 

Hydrosol

Hydrosol

Użytkownicy
posty4
Propsy5
Profesjabrak
  • Użytkownicy
@inż. Avallach
@Sawik

 Ktoś mi wyjaśni o co tu właściwie chodzi?


Moze do mnie to pytanie ? Ja zalozylem ten temat, szybko streszcze, jestem w posiadaniu kodu gothica czyli silnika gry z okresu pierwszej alphy ale ktos sie podszywa pod moje osiagniecia. Jak wiadomo wyciaganie kodu z dll a pozniej optymalizowanie go do c++ troche zajmuje, dlatego prosze o chwile cierpliwosci. To wszystko

Dobra dobra, skończ pierdolić. Nam modderom w niczym to nie pomoże, jak chcesz się pochwalić to idź gdzie indziej. Nikt tu nad tym się nie będzie spuszczał, bo właściwie po co? Skoro nic z tym nie można zrobić to cały ten temat nie ma sensu.

Nie podoba ci sie cos to ty mozesz wypier***ac, nie bede tolerowal atakow na moja osobe, chce wam cos pokazac a wam i tak zle, to wlasnie wy glupie polaczki.
 

Dark

Dark

Użytkownicy
posty1052
Propsy2197
Profesjabrak
  • Użytkownicy
Ja czekam kiedy wypowie się w tej kwestii avallach - co jest prawdą a co nie, bo w kwestii silnika tylko jemu ufam.

Hydrosol - mieliście odbyć rozmowę na temat silnika. Rozumiem ze już do tego doszło?

Wowoz

Wowoz

Użytkownicy
Wowoźny
posty3698
Propsy4862
NagrodyVV
Profesjabrak
  • Użytkownicy
  • Wowoźny
 

Hydrosol

Hydrosol

Użytkownicy
posty4
Propsy5
Profesjabrak
  • Użytkownicy
tylko jemu ufam.
https://www.youtube.com/watch?v=KolfEhV-KiA


Wojtas po co sie mieszasz ? Lepiej haba mu daj, Kurr co wam mam wkleic ten kod tutaj zebyscie uwierzyli ? prosze bardzo...

zEngine


Nazwa pliku zzId_Ca.cpp

#include "ID_HEADS.H"
#pragma hdrstop

#pragma warn -pro
#pragma warn -use

/*
=============================================================================

LOCAL CONSTANTS

=============================================================================
*/

/*
=============================================================================

GLOBAL VARIABLES

=============================================================================
*/

byte _seg *tinf;
int mapon;

unsigned _seg *mapsegs[MAPPLANES];
maptype _seg *mapheaderseg[NUMMAPS];
byte _seg *audiosegs[NUMSNDCHUNKS];
void _seg *grsegs[NUMCHUNKS];

byte far grneeded[NUMCHUNKS];
byte ca_levelbit,ca_levelnum;

int profilehandle,debughandle;

char audioname[13]="AUDIO.";

/*
=============================================================================

LOCAL VARIABLES

=============================================================================
*/

extern long far CGAhead;
extern long far EGAhead;
extern byte CGAdict;
extern byte EGAdict;
extern byte far maphead;
extern byte mapdict;
extern byte far audiohead;
extern byte audiodict;


char extension[5], // Need a string, not constant to change cache files
     gheadname[10]=GREXT"HEAD.",
     gfilename[10]=GREXT"GRAPH.",
     gdictname[10]=GREXT"DICT.",
     mheadname[10]="MAPHEAD.",
     mfilename[10]="MAPTEMP.",
     aheadname[10]="AUDIOHED.",
     afilename[10]="AUDIOT.";

void CA_CannotOpen(char *string);

long _seg *grstarts; // array of offsets in egagraph, -1 for sparse
long _seg *audiostarts; // array of offsets in audio / audiot

#ifdef GRHEADERLINKED
huffnode *grhuffman;
#else
huffnode grhuffman[255];
#endif

#ifdef AUDIOHEADERLINKED
huffnode *audiohuffman;
#else
huffnode audiohuffman[255];
#endif


int grhandle; // handle to EGAGRAPH
int maphandle; // handle to MAPTEMP / GAMEMAPS
int audiohandle; // handle to AUDIOT / AUDIO

long chunkcomplen,chunkexplen;

SDMode oldsoundmode;


void CAL_CarmackExpand (unsigned far *source, unsigned far *dest,
unsigned length);


#ifdef THREEBYTEGRSTARTS
//#define GRFILEPOS(c) (*(long far *)(((byte far *)grstarts)+(c)*3)&0xffffff)
long GRFILEPOS(int c)
{
long value;
int offset;

offset = c*3;

value = *(long far *)(((byte far *)grstarts)+offset);

value &= 0x00ffffffl;

if (value == 0xffffffl)
value = -1;

return value;
};
#else
#define GRFILEPOS(c) (grstarts[c])
#endif

/*
=============================================================================

   LOW LEVEL ROUTINES

=============================================================================
*/

#if 0

/*
============================
=
= CA_OpenDebug / CA_CloseDebug
=
= Opens a binary file with the handle "debughandle"
=
============================
*/

void CA_OpenDebug (void)
{
unlink ("DEBUG.TXT");
debughandle = open("DEBUG.TXT", O_CREAT | O_WRONLY | O_TEXT);
}

void CA_CloseDebug (void)
{
close (debughandle);
}

#endif



//-----------------------------------------------------------------------
// OpenGrFile()
//------------------------------------------------------------------------
void OpenGrFile(void)
{
char fname[13];
strcpy(fname,gfilename);
strcat(fname,extension);

grhandle = open(fname, O_RDONLY | O_BINARY);
if (grhandle == -1)
CA_CannotOpen(fname);
}



//-----------------------------------------------------------------------
// CloseGrFile()
//------------------------------------------------------------------------
void CloseGrFile(void)
{
if (grhandle != -1)
close(grhandle);
}


//-----------------------------------------------------------------------
// OpenMapFile()
//------------------------------------------------------------------------
void OpenMapFile(void)
{
char fname[13];

#ifdef CARMACIZED
strcpy(fname,"GAMEMAPS.");
strcat(fname,extension);

if ((maphandle = open(fname,
O_RDONLY | O_BINARY, S_IREAD)) == -1)
CA_CannotOpen(fname);
#else
strcpy(fname,mfilename);
strcat(fname,extension);

if ((maphandle = open(fname,
O_RDONLY | O_BINARY, S_IREAD)) == -1)
CA_CannotOpen(fname);
#endif
}


//-----------------------------------------------------------------------
// CloseMapFile()
//------------------------------------------------------------------------
void CloseMapFile(void)
{
if (maphandle != -1)
close(maphandle);
}



//-----------------------------------------------------------------------
// OpenAudioFile()
//------------------------------------------------------------------------
void OpenAudioFile(void)
{
char fname[13];

#ifndef AUDIOHEADERLINKED
strcpy(fname,afilename);
strcat(fname,extension);

if ((audiohandle = open(fname,
O_RDONLY | O_BINARY, S_IREAD)) == -1)
CA_CannotOpen(fname);
#else
if ((audiohandle = open("AUDIO."EXTENSION,
O_RDONLY | O_BINARY, S_IREAD)) == -1)
CA_ERROR(SETUPAUDIO_CANT_OPEN);
#endif
}
 

Fabio

Fabio

The Modders
posty3477
Propsy2157
ProfesjaSkrypter
  • The Modders
tylko jemu ufam.
https://www.youtube.com/watch?v=KolfEhV-KiA

Spoiler
Wojtas po co sie mieszasz ? Lepiej haba mu daj, Kurr co wam mam wkleic ten kod tutaj zebyscie uwierzyli ? prosze bardzo...

zEngine


Nazwa pliku zzId_Ca.cpp

#include "ID_HEADS.H"
#pragma hdrstop

#pragma warn -pro
#pragma warn -use

/*
=============================================================================

LOCAL CONSTANTS

=============================================================================
*/

/*
=============================================================================

GLOBAL VARIABLES

=============================================================================
*/

byte _seg *tinf;
int mapon;

unsigned _seg *mapsegs[MAPPLANES];
maptype _seg *mapheaderseg[NUMMAPS];
byte _seg *audiosegs[NUMSNDCHUNKS];
void _seg *grsegs[NUMCHUNKS];

byte far grneeded[NUMCHUNKS];
byte ca_levelbit,ca_levelnum;

int profilehandle,debughandle;

char audioname[13]="AUDIO.";

/*
=============================================================================

LOCAL VARIABLES

=============================================================================
*/

extern long far CGAhead;
extern long far EGAhead;
extern byte CGAdict;
extern byte EGAdict;
extern byte far maphead;
extern byte mapdict;
extern byte far audiohead;
extern byte audiodict;


char extension[5], // Need a string, not constant to change cache files
     gheadname[10]=GREXT"HEAD.",
     gfilename[10]=GREXT"GRAPH.",
     gdictname[10]=GREXT"DICT.",
     mheadname[10]="MAPHEAD.",
     mfilename[10]="MAPTEMP.",
     aheadname[10]="AUDIOHED.",
     afilename[10]="AUDIOT.";

void CA_CannotOpen(char *string);

long _seg *grstarts; // array of offsets in egagraph, -1 for sparse
long _seg *audiostarts; // array of offsets in audio / audiot

#ifdef GRHEADERLINKED
huffnode *grhuffman;
#else
huffnode grhuffman[255];
#endif

#ifdef AUDIOHEADERLINKED
huffnode *audiohuffman;
#else
huffnode audiohuffman[255];
#endif


int grhandle; // handle to EGAGRAPH
int maphandle; // handle to MAPTEMP / GAMEMAPS
int audiohandle; // handle to AUDIOT / AUDIO

long chunkcomplen,chunkexplen;

SDMode oldsoundmode;


void CAL_CarmackExpand (unsigned far *source, unsigned far *dest,
unsigned length);


#ifdef THREEBYTEGRSTARTS
//#define GRFILEPOS(c) (*(long far *)(((byte far *)grstarts)+(c)*3)&0xffffff)
long GRFILEPOS(int c)
{
long value;
int offset;

offset = c*3;

value = *(long far *)(((byte far *)grstarts)+offset);

value &= 0x00ffffffl;

if (value == 0xffffffl)
value = -1;

return value;
};
#else
#define GRFILEPOS(c) (grstarts[c])
#endif

/*
=============================================================================

   LOW LEVEL ROUTINES

=============================================================================
*/

#if 0

/*
============================
=
= CA_OpenDebug / CA_CloseDebug
=
= Opens a binary file with the handle "debughandle"
=
============================
*/

void CA_OpenDebug (void)
{
unlink ("DEBUG.TXT");
debughandle = open("DEBUG.TXT", O_CREAT | O_WRONLY | O_TEXT);
}

void CA_CloseDebug (void)
{
close (debughandle);
}

#endif



//-----------------------------------------------------------------------
// OpenGrFile()
//------------------------------------------------------------------------
void OpenGrFile(void)
{
char fname[13];
strcpy(fname,gfilename);
strcat(fname,extension);

grhandle = open(fname, O_RDONLY | O_BINARY);
if (grhandle == -1)
CA_CannotOpen(fname);
}



//-----------------------------------------------------------------------
// CloseGrFile()
//------------------------------------------------------------------------
void CloseGrFile(void)
{
if (grhandle != -1)
close(grhandle);
}


//-----------------------------------------------------------------------
// OpenMapFile()
//------------------------------------------------------------------------
void OpenMapFile(void)
{
char fname[13];

#ifdef CARMACIZED
strcpy(fname,"GAMEMAPS.");
strcat(fname,extension);

if ((maphandle = open(fname,
O_RDONLY | O_BINARY, S_IREAD)) == -1)
CA_CannotOpen(fname);
#else
strcpy(fname,mfilename);
strcat(fname,extension);

if ((maphandle = open(fname,
O_RDONLY | O_BINARY, S_IREAD)) == -1)
CA_CannotOpen(fname);
#endif
}


//-----------------------------------------------------------------------
// CloseMapFile()
//------------------------------------------------------------------------
void CloseMapFile(void)
{
if (maphandle != -1)
close(maphandle);
}



//-----------------------------------------------------------------------
// OpenAudioFile()
//------------------------------------------------------------------------
void OpenAudioFile(void)
{
char fname[13];

#ifndef AUDIOHEADERLINKED
strcpy(fname,afilename);
strcat(fname,extension);

if ((audiohandle = open(fname,
O_RDONLY | O_BINARY, S_IREAD)) == -1)
CA_CannotOpen(fname);
#else
if ((audiohandle = open("AUDIO."EXTENSION,
O_RDONLY | O_BINARY, S_IREAD)) == -1)
CA_ERROR(SETUPAUDIO_CANT_OPEN);
#endif
}

Wpisz ten kod używając "Umieść kod".

Edit by Porfiry Pietrowicz@ Dawaj takie cytaty w spoiler, tym bardziej, że cytowałeś post wyżej.

Hydrosol

Hydrosol

Użytkownicy
posty4
Propsy5
Profesjabrak
  • Użytkownicy
Jak widzicie tutaj nie ma jeszcze nic ciekawego no chyba ze jakis programista to ogarnie, ale ludzie mowie wam poczekajcie na cos lepszego cos co moze nam pomoc w zrozumieniu dzialania gothica ! Prosze was nie badzcie tacy zimni...
 

Dark

Dark

Użytkownicy
posty1052
Propsy2197
Profesjabrak
  • Użytkownicy
 Dobrze, to teraz czekamy aż nasi forumowi programiści to zweryfikują

Splash

Splash

Moderator
posty4209
Propsy3412
ProfesjaNierób
  • Moderator
Dobrze, to teraz czekamy aż nasi forumowi programiści to zweryfikują
Przyzwij Monka.
 
Nie zajmuję się multiplayerami do Gothica. Przestańcie zawracać mi tym głowę...
Ps. Siemekk ma downa i śpi w pufie

Hydrosol

Hydrosol

Użytkownicy
posty4
Propsy5
Profesjabrak
  • Użytkownicy
A co tutaj weryfikowac ? 100 lini kodu wogole nieczytelnych dla nie-programistow Pirahna Bytes, jedynie co mnie martwi to bardzo zle napisany kod, tzn patterny ktore stosowalo sie na poczatku lat 90, i to mnie zastanawia czy to na 100% jest kod Zengine.... Ja tez nie mam 100% pewnosci ze Phillipe mi nie dal jakiegos dziadostwa zeby sie posmiac, niby nazwy itp sie zgadzaja ale ten kod...
 

Zkirtaem

Zkirtaem

Moderator
Mięso
posty2171
Propsy1689
ProfesjaGracz
  • Moderator
  • Mięso
https://github.com/johndrinkwater/blake-stone/blob/master/ID_CA.C


Dobra, nie będę kazał Wam tego przecież porównywać. Poza pierwszymi kilkoma liniami nagłówka to ten sam kod co wklejka.


zresztą
Cytuj
musze gotowe pliki przekompilowac na zwykly kod c++ a do tego nie nadaje sie zaden "prosty" programik z internetu. Ten process troszke potrwa ale napisalem zeby sie podzielic takim moim "malym" osiagnieciem, nie mam pojecia czy kazdy lubi takie ciekawostki jak ja, stay tuned please
Cytuj
Jak wiadomo wyciaganie kodu z dll a pozniej optymalizowanie go do c++ troche zajmuje
co to za pierdolenie :F
 

Dark

Dark

Użytkownicy
posty1052
Propsy2197
Profesjabrak
  • Użytkownicy
Sądząc po tym co piszesz jesteś albo geniuszem, albo idiotą

Przyzwij Monka.
Właśnie mu wysłałem linka


Edit: UP@
hydrosol masz coś na swoją obronę?  Nie wiem czy Warn będzie tu wystarczająco adekwatny

Draks

Draks

Użytkownicy
Gothic 2 Nowy porządek
posty1715
Propsy766
ProfesjaGrafik 3D
  • Użytkownicy
  • Gothic 2 Nowy porządek
Nie wiem czy te Informacje są prawdziwe, ale warto wiedzieć ZenGin
jest pisany w 38% w C++
19% w C
14% w JS
9% w HTML
7% w XML
i 13% w innych jezykach

Źródło zachowam dla siebie :lol2:
 

Dark

Dark

Użytkownicy
posty1052
Propsy2197
Profesjabrak
  • Użytkownicy
 Czekamy na słowo pożegnalne przed zbanowaniem :lol2:

Leinnan

Leinnan

Administrator
torsonic polarity syndrome
posty2651
Propsy3600
ProfesjaProgramista
  • Administrator
  • torsonic polarity syndrome
Nie wiem czy te Informacje są prawdziwe, ale warto wiedzieć ZenGin
jest pisany w 38% w C++
19% w C
14% w JS
9% w HTML
7% w XML
i 13% w innych jezykach

Źródło zachowam dla siebie.

 
Mit der Dummheit kämpfen die Götter selbst vergebens

steam | slavic castles |  last.fm | moddb.com | Stary, najlepszy lider Sclavinii

Fabio

Fabio

The Modders
posty3477
Propsy2157
ProfesjaSkrypter
  • The Modders
Nie wiem czy te Informacje są prawdziwe, ale warto wiedzieć ZenGin
jest pisany w 38% w C++
19% w C
14% w JS
9% w HTML
7% w XML
i 13% w innych jezykach

Źródło zachowam dla siebie :lol2:

Kolejny, który chciał zabłysnąć :lol2:

kageyoshi

kageyoshi

Użytkownicy
posty173
Propsy36
Profesjabrak
  • Użytkownicy
 

kaczka

kaczka

RaveN Studio
Definitely not kaczka!
posty2280
Propsy2392
NagrodyV
ProfesjaLvl designer
  • RaveN Studio
  • Definitely not kaczka!
Kolejny, który chciał zabłysnąć :lol2:
On zabłysnął już dawno. Razem z memoriusem i innymi podobnymi pajacami.
 

kageyoshi

kageyoshi

Użytkownicy
posty173
Propsy36
Profesjabrak
  • Użytkownicy
Może zły temat i głupie pytanie ale o co chodzi z tym Memoriusem? :D nie siedzę na forum zbyt długo i orientuje się że to był jeden z tłumaczy Returna 1.0 a po jego wypowiedziach szło wywnioskować że dosyć mądry chłop tym bardziej nie rozumiem dlaczego jest pajacem? Swoją drogą dawno go nie widziałem na forum
 


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry