Home    Forum    Cerca    FAQ    Iscriviti    Login
Nascondi Menu Principale
  Community

STRUTTURA DEI FILES - PAGINA 2


.por file (Portals)

I files Portal (in modalità edit "Erm - nothing to see here") non hanno effetto in Re-Volt (o meglio, non quello che dovrebbero avere). La struttura è la seguente:

Codice: [Nascondi] [Seleziona]
 struct_POR_File
 {
    rvlong entry_count;

    POR_Entry entries[entry_count];
 }

Portals entry_structure (.por)

Codice: [Nascondi] [Seleziona]
 struct POR_Entry
 {
    rvulong type;
    rvulong id[2];
    Vector center;
    rvfloat rotation_matrix[3] [3];
    Vector size;

    rvfloat zeroes[4];
 }

type ha valore 0 se la struttura descrive un portale, 1 se descrive una regione
zeroes sembra avere sempre valore 0.


.rim file (Mirrors)

Codice: [Nascondi] [Seleziona]
 struct RIM_File
 {
    rvshort entry_count;

    RIM_Entry entries[entry_count];
 }

Mirrors entry_structure (.rim)

Codice: [Nascondi] [Seleziona]
 struct RIM_Entry
 {
    rvulong flags;

    Vector plane_normal;
    rvfloat plane_distance;

    BoundingBox bbox;

    Vector vertices[4];
 }

flags sembra essere sempre 0 o 1, e sta a significare "3 vertici" o "4 vertici". I vertici devono essere su piano a specchio.


Hull.hul file

Codice: [Nascondi] [Seleziona]
 struct HullFile
 {
    rvshort chull_count;
    ConvexHull chulls[chull_count];

    Interior interior;
 }

Una cosa strana è che il file Hull.hul di Candy Pebbles è vuoto, cioè occupa 0 bytes. O i programmatori si sono dimenticati qualcosa, oppure l'auto è strana.
Forse c'è più di una parte Interior. Tutte le auto eccetto Mouse ce l'hanno. Mouse invece ne ha tre. Anche questa stranezza non è ancora stata risolta.

Questo è il file Hull di Mouse:

Convex Hull

Codice: [Nascondi] [Seleziona]
 struct ConvexHull
 {
    rvshort Vertex_count;
    rvshort edge_count;
    rvshort face_count;

    rvfloat bbox_xlo, bbox_xhi;
    rvfloat bbox_ylo, bbox_yhi;
    rvfloat bbox_zlo, bboz_zhi;

    Vector unknown_vector;

    Vector vertices[vertex_count];
    Edge edges[edge_count];
    Face faces[face_count];
 }

Non si capisce bene perchè le facce debbano essere di tre vertici, visto che altre forme sono possibili. Inoltre, il significato di unknown_vector è appunto sconosciuto.


Edge & Face

Codice: [Nascondi] [Seleziona]
 struct Edge
 {
    rvshort verts[2];
 }

 struct Face
 {
    Vector normal;
    rvfloat distance;
 }

Questo rappresenta unicamente un piano (le parti principali di un file Hull sono convesse).


Interior

Codice: [Nascondi] [Seleziona]
 struct Interior
 {
    rvshort sphere_count;

    Sphere spheres[sphere_count];
 }

Queste parti sembrano essere usate per determinare i punti di collisione della vettura. Imposta una serie di sfere che riempiono l'interno della vettura.

Codice: [Nascondi] [Seleziona]
 struct Sphere
 {
    Vector center;
    rvfloat radius;
 }

.prm file

Maximvs ha analizzato e scoperto come viene strutturato il file Body.prm delle auto di Re-Volt. Il file è codificato in esadecimale, quindi si mostrerà come un elenco di byte. Ogni byte è formato da due caratteri (cifre o numeri). La prima parte del file si presenta così:

Codice: [Nascondi] [Seleziona]
08000F00000000000200000001000000
FFFFFF00FFFFFF00FFFFFF00FFFFFF00
E5A6DF3E940EBFBF000EE0B8940EBFBF
001AE0B8582187BF0000000000000000
000000000500030004000000FFFFFF00
FFFFFF00FFFFFF00FFFFFF005F7EF6BF
D253603F5F7EF6BF00E91E3B2691BEBF
D253603F000000000000000000000000
0100000006000000FFFFFF00FFFFFF00
FFFFFF00FFFFFF00001AE0B8582187BF
000EE0B8940EBFBFEEC2DFBE940EBFBF
00000000000000000000000007000300
05000000FFFFFF00FFFFFF00FFFFFF00
FFFFFF00CE3517C0D253603F5F7EF6BF
00E91E3B5F7EF6BFD253603F00000000
00000000000000000600000008000000
FFFFFF00FFFFFF00FFFFFF00FFFFFF00
EEC2DFBE940EBFBF000EE0B8940EBFBF
000AE0B8CEFBF6BF0000000000000000
000000000B0009000A000000FFFFFF00
FFFFFF00FFFFFF00FFFFFF00E07B863E
C586033FE07B863E2871753F3086203D
2871753F000000000000000000000000
0800000002000000FFFFFF00FFFFFF00
FFFFFF00FFFFFF00000AE0B8CEFBF6BF
000EE0B8940EBFBFE5A6DF3E940EBFBF
0000000000000000000000000E000C00
0D000000FFFFFF00FFFFFF00FFFFFF00
FFFFFF00F4E6F83EC5B7753FE07B863E
AE4C033FE07B863EC5B7753F00000000
00000000

I primi 2 byte (0800) indica il numero di poligoni o di facce presenti nel file, mentre il terzo e il quarto byte (0F00) indicano il numero di vertici. Con la calcolatrice possiamo quindi ottenere che all'interno di questo file sono presenti 8 poligoni e 15 vertici.
I successivi 4 byte sono e dovrebbero essere sempre lasciati a 0.
Il gruppetto composto da 0200;0000;0100 indica il numero di vertici che compongono il poligono 0 (V2,V0,V1), mentre il gruppo di 12 byte (FF;FF;FF;00 ripetuto 3 volte) indica il colore dei vertici (V2,V0 e V1) informato RGB più il canale alfa (B=FF=255:G=FF=255:R=FF=255 Alfa=0).
I 4 byte identici ai precedenti (FF;FF;FF;00) indicano il colore del poligono ma non vengono utilizzati da Revolt).

Il successivo gruppo di 24 byte indicano invece le coordinate UV della mappatura del poligono 0, composto dai 3 vertici V2,V0,V1. Quindi nel caso dell'esempio troviamo V2 coordinata U=E5A6DF3E=0.43682018 (essendo un valore di tipo float con virgola), poi troviamo V2 V=940EBFBF=-1.4926324 e così via sia per V0.U,V0.V,V1.U,V1.V. In coda a questi ci sono 8 byte a zero e poi si ricomincia per per i rimanenti 7 poligoni.

Codice: [Nascondi] [Seleziona]
F00A2F3B68F94FBB00B664BD
0FF5D0C49706B044FF499B4250142F3B
68F94FBBA1E02D41AFEBD0C49706B044
5E1FD2BE63BA2EC168F94FBB00B664BD
9C45D13E9706B044FF499B42F00A2F3B
D6CBAEC100B664BD0FF5D0C42934513E
FF499B4263BA2EC168F94FBB00B664BD
9C45D13E9706B044FF499B4250142F3B
68F94FBBA1E02D41AFEBD0C49706B044
5E1FD2BE4AD02E4168F94FBBC8B664BD
B52FD1BE9706B04437499B424AD02E41
68F94FBBC8B664BDB52FD1BE9706B044
37499B42D0072F3B68F94FBB0CAA2FC1
2FF8D0C49706B044F355D03EF00A2F3B
D6CBAEC100B664BD0FF5D0C42934513E
FF499B424AD02E4168F94FBBC8B664BD
B52FD1BE9706B04437499B42D0072F3B
68F94FBB0CAA2FC12FF8D0C49706B044
F355D03EF00A2F3BD6CBAEC100B664BD
0FF5D0C42934513EFF499B42D0072F3B
68F94FBB0CAA2FC12FF8D0C49706B044
F355D03E63BA2EC168F94FBB00B664BD
9C45D13E9706B044FF499B4263

Questo ultimo blocco di byte, raccolti 12 per volta in gruppi da 4 (F00A2F3B,68F94FBB,00B664BD) sono le coordinate X,Y,Z dei vertici, elencati in sequenza dal vertice 0 al vertice 15, seguiti da altri 12 byte per le coordinate per i riflessi della macchina.

Nascondi Menu Struttura Files
  Pagine

 



Copyright (C) 2000 - 2014 AliasReVoltMaster.com
Tutti i diritti riservati

Per qualsiasi problema, domanda, idea o suggerimento, potete scrivere ad arm@aliasrevoltmaster.com