From bb9a47cd6d41e2c3f7978e2fb1a9c0e2c93f363f Mon Sep 17 00:00:00 2001 From: Doc Date: Mon, 18 Aug 2025 12:48:48 +0200 Subject: [PATCH] added comments --- internal/wad/wad.go | 8 ++++++++ main.go | 11 +++++++++++ 2 files changed, 19 insertions(+) diff --git a/internal/wad/wad.go b/internal/wad/wad.go index eb1de7d..18dbf00 100644 --- a/internal/wad/wad.go +++ b/internal/wad/wad.go @@ -1,3 +1,5 @@ +// Extrahieren der "Rohen" Lump-Bytes einer WAD-Datei +// siehe def Lumps: https://doomwiki.org/wiki/Lump package wad import ( @@ -31,6 +33,7 @@ type Wad struct { path string } +// Öffnen der WAD und checks func Open(path string) (*Wad, error) { f, err := os.Open(path) if err != nil { @@ -90,6 +93,7 @@ func Open(path string) (*Wad, error) { return w, nil } +// WAD Closing func (w *Wad) Close() error { if w == nil || w.f == nil { return nil @@ -101,6 +105,7 @@ func (w *Wad) Close() error { func (w *Wad) Dir() []DirEntry { return w.dir } +// Lessen der Lump roh Bytes func (w *Wad) ReadLump(i int) (name string, data []byte, err error) { if i < 0 || i >= len(w.dir) { return "", nil, fmt.Errorf("lump index out of range: %d", i) @@ -118,6 +123,7 @@ func (w *Wad) ReadLump(i int) (name string, data []byte, err error) { return name, buf, nil } +// Extrahieren der Lump Namen aus den rohen Bytes func (w *Wad) ReadLumpByName(name string) ([]byte, int, error) { want := strings.ToUpper(name) for i, d := range w.dir { @@ -129,6 +135,7 @@ func (w *Wad) ReadLumpByName(name string) ([]byte, int, error) { return nil, -1, fmt.Errorf("lump %q not found", want) } +// Finden der Map( start und ende) in der WAD func (w *Wad) FindMap(marker string) (start, end int, err error) { m := strings.ToUpper(marker) start = -1 @@ -151,6 +158,7 @@ func (w *Wad) FindMap(marker string) (start, end int, err error) { return start, end, nil } +// Laden der Map Lumps func (w *Wad) LoadMapLumps(marker string, names ...string) (map[string][]byte, error) { start, end, err := w.FindMap(marker) if err != nil { diff --git a/main.go b/main.go index 5e496d2..370e405 100644 --- a/main.go +++ b/main.go @@ -1,6 +1,7 @@ package main import ( + "bspviz/internal/mapfmt" "bspviz/internal/wad" "flag" "fmt" @@ -48,6 +49,7 @@ func main() { } fmt.Printf("Map %s: Directory [%d, %d)\n", strings.ToUpper(*mapMarker), start, end) + //info über die daten in WAD if *info { lumps, err := w.LoadMapLumps(*mapMarker, "VERTEXES", "LINEDEFS") if err != nil { @@ -55,12 +57,20 @@ func main() { } vb := lumps["VERTEXES"] lb := lumps["LINEDEFS"] + m, err := mapfmt.LoadMap(lumps) + if err != nil { + log.Fatal(err) + } verts := len(vb) / 4 lines := len(lb) / 14 fmt.Printf("VERTEXES: bytes=%d count=%d\n", len(vb), verts) fmt.Printf("LINEDEFS: bytes=%d count=%d\n", len(lb), lines) + fmt.Printf("Map has %d vertices and %d linedefs\n", len(m.Vertices), len(m.Linedefs)) + fmt.Printf("First vertex: %+v\n", m.Vertices[0]) + fmt.Printf("First linedef: %+v\n", m.Linedefs[0]) + if len(vb)%4 != 0 { fmt.Println("WARN: VERTEXES size ist kein Vielfaches von 4 → Format prüfen") } @@ -69,6 +79,7 @@ func main() { } } + // Generiert einzelne Lump Dateien zum Debugen if *extract != "" { want := strings.Split(*extract, ",") for i := range want {