Página 11 de 12

Re: What about...UDMF Editor?

Enviado: Qua Fev 10, 2010 3:17 pm
por Rico
Então qual a diferença entre

(int *argc, char **argv)
e
(int argc, char *argv)?

Re: What about...UDMF Editor?

Enviado: Qua Fev 10, 2010 3:32 pm
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:

Re: What about...UDMF Editor?

Enviado: Qua Fev 10, 2010 7:08 pm
por Rico
Então pq eu vejo em muitos exemplos como o argc como um ponteiro?

Re: What about...UDMF Editor?

Enviado: Qua Fev 10, 2010 7:55 pm
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...

Re: What about...UDMF Editor?

Enviado: Sex Fev 12, 2010 10:11 pm
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:

Re: What about...UDMF Editor?

Enviado: Sex Fev 12, 2010 11:46 pm
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!

Re: What about...UDMF Editor?

Enviado: Sáb Fev 13, 2010 12:37 am
por Rico
Só botar algum WAD na mesma pasta... e colocar o nome.... DOOM2.WAD/doom2.wad ex...
só mostra algumas coisas ainda...

Re: What about...UDMF Editor?

Enviado: Sáb Fev 13, 2010 2:01 pm
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!

Re: What about...UDMF Editor?

Enviado: Sáb Fev 13, 2010 7:35 pm
por Rico
ler lumps tá INDO... pelo menos o primeiro lump já to quase conseguindo...
Ele lê p/iWAD e quantos lumps tem.
ainda ;)

Re: What about...UDMF Editor?

Enviado: Dom Fev 14, 2010 12:21 am
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)