What about...UDMF Editor?

Sub-fórum especial para usuários que querem discutir/aprender programação, como as linguagens C/C++/C#, Java, HTML, e por aí vai...
Rico
Mensagens: 2354
Registrado em: Dom Set 10, 2006 11:49 am
Answers: 0
17
Localização: Atrás do DU0
Contato:

Re: What about...UDMF Editor?

Mensagem por Rico »

Então qual a diferença entre

(int *argc, char **argv)
e
(int argc, char *argv)?
[xfire]p0br3[/xfire]
Futuro PC:

CPU: AMD Athlon x2 64Bits 7750 2.7GHz Black Edition
MoBo: Asus M2 ou M3.
VGA: XFX Geforce 9800 GTX 512MB ou 1GB/256Bits
HD: Seagate 1TB
PSU: ATX 600w REAIS
RAM: 4GB Ram DDR2 Kingstone @800MHz [2x2Gb]
Avatar do usuário
Fabio914
Mensagens: 1757
Registrado em: Dom Mai 21, 2006 4:38 pm
Answers: 0
17
Localização: Sampa/Sanca
Contato:

Re: What about...UDMF Editor?

Mensagem por Fabio914 »

Rico escreveu:Então qual a diferença entre

(int *argc, char **argv)
e
(int argc, char *argv)?
Cara, **argv é um ponteiro para um ponteiro que aponta para um char, ou seja, quando alocado ele é um vetor de vetores (um vetor de strings), onde serão colocadas as strings dos argumentos. O *argv estaria errado pois não armazenaria os argumentos (strings)...

O contador de argumentos 'argc' não é passado como ponteiro.

Então o certo é (int argc, char *argv[]) ou (int argc, char **argv)... :wink:
Projetos em andamento
the Core
Eclipse

Projetos parados
Doom 3 on GZDoom
FSD Project

PC
AMD Athlon 64 X2 5200+ (2x 2.6Ghz)
2GB RAM (2x 1GB DDR2)
240GB (160GB SATA + 80GB SATA)
XFX nVidia GeForce 8600 GT (600mhz 256mb)
Placa Mãe ASUS M2N4 SLI (2x PCI-E 16x SLI, 4x DDR2 800, nForce 4)
Fonte 500W reais (esqueci o nome da marca)
Monitor LG Flatron 19'' LCD
Rico
Mensagens: 2354
Registrado em: Dom Set 10, 2006 11:49 am
Answers: 0
17
Localização: Atrás do DU0
Contato:

Re: What about...UDMF Editor?

Mensagem por Rico »

Então pq eu vejo em muitos exemplos como o argc como um ponteiro?
[xfire]p0br3[/xfire]
Futuro PC:

CPU: AMD Athlon x2 64Bits 7750 2.7GHz Black Edition
MoBo: Asus M2 ou M3.
VGA: XFX Geforce 9800 GTX 512MB ou 1GB/256Bits
HD: Seagate 1TB
PSU: ATX 600w REAIS
RAM: 4GB Ram DDR2 Kingstone @800MHz [2x2Gb]
Avatar do usuário
Fabio914
Mensagens: 1757
Registrado em: Dom Mai 21, 2006 4:38 pm
Answers: 0
17
Localização: Sampa/Sanca
Contato:

Re: What about...UDMF Editor?

Mensagem por Fabio914 »

Rico escreveu:Então pq eu vejo em muitos exemplos como o argc como um ponteiro?
Cara, vai ver funciona como ponteiro também pois o valor do argc é pequeno e uma variável tipo void * (ponteiro) pode armazena-lo... Mas acredito eu que não seja a melhor opção fazer assim...
Projetos em andamento
the Core
Eclipse

Projetos parados
Doom 3 on GZDoom
FSD Project

PC
AMD Athlon 64 X2 5200+ (2x 2.6Ghz)
2GB RAM (2x 1GB DDR2)
240GB (160GB SATA + 80GB SATA)
XFX nVidia GeForce 8600 GT (600mhz 256mb)
Placa Mãe ASUS M2N4 SLI (2x PCI-E 16x SLI, 4x DDR2 800, nForce 4)
Fonte 500W reais (esqueci o nome da marca)
Monitor LG Flatron 19'' LCD
Rico
Mensagens: 2354
Registrado em: Dom Set 10, 2006 11:49 am
Answers: 0
17
Localização: Atrás do DU0
Contato:

Re: What about...UDMF Editor?

Mensagem por Rico »

FABIO, OLHA ISSO!!!!!
Depois de ficar DIAS E DIAS (3...) Lendo isto que você me passou.
http://tkboom.sourceforge.net/wadfile_spec.shtml
E ler isso
http://www.cplusplus.com/reference/clib ... dio/fread/

EU CONSEGUI :D \o/ \:D/ :putz: :putz: :putz: :putz: :putz: :putz: :putz: :putz: :blue: :blue: :blue: :blue: :blue: :blue: :blue: :blue: :nofunny: :nofunny: :lol: :lol: :lol: :lol: :lol:

Código: Selecionar todos

/* Inicio de um possível WAD READER para UDMF, abrir lumps e colocar num cache onde que depois o Olympus irá interpretar. */


#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define LEN 255 // Maximo de chars no nome do arquivo

int main(int argc, char *argv[]) {

    int  len;
    char wadfile[LEN];
    char WAD_TYPE[4];
    int  num_lumps;
    //char buffer[4];

    FILE *wad;

    if(fgets(wadfile,sizeof(wadfile),stdin)) {
        len = strlen(wadfile) - 1; // Posição anterior ao '\0'
        // Se houver nova linha, remove-a
        if(wadfile[len]=='\n')
            wadfile[len]='\0';
    }
    wad = fopen(wadfile,"r");
    fseek(wad,0,SEEK_SET);
    fread(&WAD_TYPE,1,4,wad);
    fread(&num_lumps,4,1,wad);
    if(WAD_TYPE[0]=='P') {
        printf("%s = PWAD\n%d Lumps",wadfile,num_lumps);
    } else if(WAD_TYPE[0]=='I') {
        printf("%s = IWAD\n%d Lumps",wadfile,num_lumps);
    } else {
        printf("WAD Invalido");
    }
    getchar();
    return(0);
}


compila isso e bota um .WAD no mesmo lugar do EXE e escreva o nome :666: :=P: :=D: :fuuu: :lolsuper: :wtf2: :rock: :cryfelicity: :xD: :s2: :SW:
[xfire]p0br3[/xfire]
Futuro PC:

CPU: AMD Athlon x2 64Bits 7750 2.7GHz Black Edition
MoBo: Asus M2 ou M3.
VGA: XFX Geforce 9800 GTX 512MB ou 1GB/256Bits
HD: Seagate 1TB
PSU: ATX 600w REAIS
RAM: 4GB Ram DDR2 Kingstone @800MHz [2x2Gb]
Avatar do usuário
Fabio914
Mensagens: 1757
Registrado em: Dom Mai 21, 2006 4:38 pm
Answers: 0
17
Localização: Sampa/Sanca
Contato:

Re: What about...UDMF Editor?

Mensagem por Fabio914 »

AEAEAEAEAEAE!!!!!

BOAAAA RICOOOOO!!!! :roll: :roll: :roll: :roll: :blue: :blue: :blue: :blue:

Agora resta escrever no wad! :wink:

Se pudermos escrever sem problemas poderemos ter o nosso 'UDMF editor' lendo e escrevendo direto do wad!
Projetos em andamento
the Core
Eclipse

Projetos parados
Doom 3 on GZDoom
FSD Project

PC
AMD Athlon 64 X2 5200+ (2x 2.6Ghz)
2GB RAM (2x 1GB DDR2)
240GB (160GB SATA + 80GB SATA)
XFX nVidia GeForce 8600 GT (600mhz 256mb)
Placa Mãe ASUS M2N4 SLI (2x PCI-E 16x SLI, 4x DDR2 800, nForce 4)
Fonte 500W reais (esqueci o nome da marca)
Monitor LG Flatron 19'' LCD
Rico
Mensagens: 2354
Registrado em: Dom Set 10, 2006 11:49 am
Answers: 0
17
Localização: Atrás do DU0
Contato:

Re: What about...UDMF Editor?

Mensagem por Rico »

Só botar algum WAD na mesma pasta... e colocar o nome.... DOOM2.WAD/doom2.wad ex...
só mostra algumas coisas ainda...
[xfire]p0br3[/xfire]
Futuro PC:

CPU: AMD Athlon x2 64Bits 7750 2.7GHz Black Edition
MoBo: Asus M2 ou M3.
VGA: XFX Geforce 9800 GTX 512MB ou 1GB/256Bits
HD: Seagate 1TB
PSU: ATX 600w REAIS
RAM: 4GB Ram DDR2 Kingstone @800MHz [2x2Gb]
Avatar do usuário
Fabio914
Mensagens: 1757
Registrado em: Dom Mai 21, 2006 4:38 pm
Answers: 0
17
Localização: Sampa/Sanca
Contato:

Re: What about...UDMF Editor?

Mensagem por Fabio914 »

Pelo que eu pude ver você só ta lendo o "índice" do arquivo por enquanto... Agora termos que ter um esquema pra ler os lumps separadamente, ai depois é bolar a escrita... :wink: Se precisar de ajuda com essa parte pode contar comigo!
Projetos em andamento
the Core
Eclipse

Projetos parados
Doom 3 on GZDoom
FSD Project

PC
AMD Athlon 64 X2 5200+ (2x 2.6Ghz)
2GB RAM (2x 1GB DDR2)
240GB (160GB SATA + 80GB SATA)
XFX nVidia GeForce 8600 GT (600mhz 256mb)
Placa Mãe ASUS M2N4 SLI (2x PCI-E 16x SLI, 4x DDR2 800, nForce 4)
Fonte 500W reais (esqueci o nome da marca)
Monitor LG Flatron 19'' LCD
Rico
Mensagens: 2354
Registrado em: Dom Set 10, 2006 11:49 am
Answers: 0
17
Localização: Atrás do DU0
Contato:

Re: What about...UDMF Editor?

Mensagem por Rico »

ler lumps tá INDO... pelo menos o primeiro lump já to quase conseguindo...
Ele lê p/iWAD e quantos lumps tem.
ainda ;)
[xfire]p0br3[/xfire]
Futuro PC:

CPU: AMD Athlon x2 64Bits 7750 2.7GHz Black Edition
MoBo: Asus M2 ou M3.
VGA: XFX Geforce 9800 GTX 512MB ou 1GB/256Bits
HD: Seagate 1TB
PSU: ATX 600w REAIS
RAM: 4GB Ram DDR2 Kingstone @800MHz [2x2Gb]
Rico
Mensagens: 2354
Registrado em: Dom Set 10, 2006 11:49 am
Answers: 0
17
Localização: Atrás do DU0
Contato:

Re: What about...UDMF Editor?

Mensagem por Rico »

Vou esperar que você lance a nova versão porque ae já tem as coisas novas que você implementou, e LOGO em seguida vou trabalhar em implementar o WAD e ver se consigo fazer o Olympus ler o MAPTEXT dentro do WAD.

O que já consegui:

- Identificar se é PWAD ou IWAD;
- Ver quantos Lumps tem;
- Achar o Diretório, tamanho e nome dos Lumps;

Bugs... ou TODO:
Terminar a Lista de Lumps... ele sempre deixa Lumps para trás antes de terminar de ler o WAD. Problemas com o Diretório. Certeza disso. (WINDOWS ONLY || Linux funciona perfeitamente)
[xfire]p0br3[/xfire]
Futuro PC:

CPU: AMD Athlon x2 64Bits 7750 2.7GHz Black Edition
MoBo: Asus M2 ou M3.
VGA: XFX Geforce 9800 GTX 512MB ou 1GB/256Bits
HD: Seagate 1TB
PSU: ATX 600w REAIS
RAM: 4GB Ram DDR2 Kingstone @800MHz [2x2Gb]