diff --git a/docs/KNOWLEDGE_BASE.md b/docs/KNOWLEDGE_BASE.md new file mode 100644 index 0000000..f862ba8 --- /dev/null +++ b/docs/KNOWLEDGE_BASE.md @@ -0,0 +1,9078 @@ +# Polyglot Codebase Knowledge Graph + +> Generated offline by **readmenator**. Supports C, C++, Python, Go, Rust, JS/TS, Java, C#, Shell, PHP, Dart, GDScript, Nim, ASM, Ruby, Swift, Kotlin, Scala, Lua, Elixir. +> No LLMs. No tokens. Pure static analysis. See more [here](https://github.com/grisuno/ReadMenator) + +**Total Files Parsed:** 258 | **Total Symbols Extracted:** 3644 | **Total Imports:** 1095 + | **Resolved Imports:** 1 + + + + +## Table of Contents + +1. [Statistics Dashboard](#statistics-dashboard) +2. [Architectural Layers](#architectural-layers) +3. [Ranked Context](#ranked-context) +4. [God Nodes](#god-nodes) +5. [Community Analysis](#community-analysis) +6. [Surprising Connections](#surprising-connections) +7. [Suggested Questions](#suggested-questions) +8. [Taint Propagation Map](#taint-propagation-map) +9. [Hotspot Analysis](#hotspot-analysis) +10. [Change Impact Analysis](#change-impact-analysis) +11. [Suggested Linting Rules](#suggested-linting-rules) +12. [Orphans](#orphans) +13. [Query Recipes](#query-recipes) +14. [Structural Knowledge Map](#structural-knowledge-map) +15. [UML Class Diagram](#uml-class-diagram) +16. [Code Property Graph](#code-property-graph) +17. [Architecture Reference](#architecture-reference) + - [C (119 files)](#c-119-files) + - [H (110 files)](#h-110-files) + - [PY (14 files)](#py-14-files) + - [S (10 files)](#s-10-files) + - [SH (5 files)](#sh-5-files) + +--- + +## Statistics Dashboard + +| Metric | Value | +|--------|-------| +| Total Files | 258 | +| Total Symbols | 3644 | +| Total Imports | 1095 | +| Call Edges | 1659 | +| Inheritance Edges | 15 | +| Languages | 6 | +| Avg Symbols/File | 14.1 | +| Avg Imports/File | 4.2 | +| Resolved Imports | 1 | + +### Top Files by Import Count (Fan-Out) + +| File | Imports | Symbols | Language | +|------|---------|---------|----------| +| `d_main.c` | 42 | 21 | c | +| `g_game.c` | 36 | 48 | c | +| `m_menu.c` | 25 | 60 | c | +| `i_input.c` | 24 | 5 | c | +| `st_stuff.c` | 24 | 137 | c | +| `i_system.c` | 21 | 20 | c | +| `m_misc.c` | 19 | 22 | c | +| `d_loop.c` | 18 | 17 | c | +| `am_map.c` | 17 | 82 | c | +| `d_net.c` | 16 | 7 | c | + +### Top Files by Imported-By Count (Fan-In) + +| File | Imported By | Symbols | Language | +|------|-------------|---------|----------| +| `kernel.h` | 10 | 34 | h | +| `tls.h` | 5 | 42 | h | +| `ide.h` | 4 | 27 | h | +| `tls_port.h` | 4 | 27 | h | +| `block.h` | 3 | 4 | h | +| `net.h` | 3 | 34 | h | +| `vga_fb.h` | 3 | 24 | h | +| `bootdefs.h` | 2 | 96 | h | +| `minifs.h` | 2 | 31 | h | +| `sched.h` | 2 | 8 | h | + +--- + +## Architectural Layers + +Auto-detected from path patterns, naming conventions, and imported frameworks. + +| Layer | Files | +|-------|-------| +| utility | 228 | +| testing | 11 | +| infrastructure | 11 | +| data_access | 5 | +| presentation | 3 | + +### utility + +- `app.py` (py, 0 symbols) +- `block.c` (c, 8 symbols) +- `block.h` (h, 4 symbols) +- `bootdefs.h` (h, 96 symbols) +- `bootloader.c` (c, 2 symbols) +- `ctx_sw.S` (S, 3 symbols) +- `cvm_host.c` (c, 45 symbols) +- `gen_minifs.py` (py, 0 symbols) +- `ide.c` (c, 14 symbols) +- `ide.h` (h, 27 symbols) +- `install.sh` (sh, 0 symbols) +- `kernel.c` (c, 253 symbols) +- `kernel.h` (h, 34 symbols) +- `lz4_kernel.c` (c, 9 symbols) +- `lz4_kernel.h` (h, 1 symbols) +- *... and 213 more* + +### testing + +- `isr_stubs.S` (S, 24 symbols) +- `test_minios_mcp.py` (py, 95 symbols) +- `p_spec.c` (c, 24 symbols) +- `p_spec.h` (h, 22 symbols) +- `ftest.c` (c, 1 symbols) +- `test.c` (c, 2 symbols) +- `test_bdd.sh` (sh, 9 symbols) +- `test_http_server.py` (py, 3 symbols) +- `tls_test.c` (c, 23 symbols) +- `tls_test.py` (py, 16 symbols) +- `tls_test_roots.h` (h, 0 symbols) + +### infrastructure + +- `mcp_dbg_driver.py` (py, 6 symbols) +- `mkramdisk.py` (py, 2 symbols) +- `config.h` (h, 16 symbols) +- `d_event.c` (c, 3 symbols) +- `d_event.h` (h, 1 symbols) +- `m_config.c` (c, 24 symbols) +- `m_config.h` (h, 1 symbols) +- `net_client.h` (h, 1 symbols) +- `net_dedicated.h` (h, 1 symbols) +- `p_setup.c` (c, 16 symbols) +- `p_setup.h` (h, 1 symbols) + +### presentation + +- `http.s` (s, 3 symbols) +- `net_gui.h` (h, 1 symbols) +- `http.c` (c, 2 symbols) + +### data_access + +- `doomdata.h` (h, 11 symbols) +- `net_query.h` (h, 1 symbols) +- `r_data.c` (c, 15 symbols) +- `r_data.h` (h, 1 symbols) +- `ramdisk_data.c` (c, 0 symbols) + +--- + +## Ranked Context + +Files ranked by composite score for the current query context. The ranking combines Personalized PageRank (query relevance), global authority, test coverage, documentation coverage, and code freshness. Model: v1.0. + +| Rank | File | Composite | PPR | Authority | Test | Doc | +|------|------|-----------|-----|-----------|------|-----| +| 1 | `mutate_mcp.sh` | 0.2000 | 0.0000 | 0.0000 | 0.00 | 2.00 | +| 2 | `p_telept.c` | 0.2000 | 0.0000 | 0.0000 | 0.00 | 2.00 | +| 3 | `r_sky.c` | 0.2000 | 0.0000 | 0.0000 | 0.00 | 2.00 | +| 4 | `tables.c` | 0.2000 | 0.0000 | 0.0000 | 0.00 | 2.00 | +| 5 | `w_main.c` | 0.2000 | 0.0000 | 0.0000 | 0.00 | 2.00 | +| 6 | `m_fixed.c` | 0.1500 | 0.0000 | 0.0000 | 0.00 | 1.50 | +| 7 | `p_floor.c` | 0.1250 | 0.0000 | 0.0000 | 0.00 | 1.25 | +| 8 | `p_switch.c` | 0.1250 | 0.0000 | 0.0000 | 0.00 | 1.25 | +| 9 | `lz4_kernel.h` | 0.1247 | 0.0380 | 0.0380 | 0.00 | 1.00 | +| 10 | `p_sight.c` | 0.1200 | 0.0000 | 0.0000 | 0.00 | 1.20 | + +--- + +## God Nodes + +Most architecturally central files ranked by combined import/export degree and symbol richness. + +| File | Score | Connections | PageRank | +|------|-------|-------------|----------| +| `kernel.c` | 43.3 | | 0.0000 | +| `d_englsh.h` | 28.6 | | 0.0000 | +| `kernel.h` | 23.4 | | 0.0000 | +| `minifs.c` | 15.3 | | 0.0000 | +| `tls_port.h` | 14.7 | | 0.0000 | +| `tls.h` | 14.2 | | 0.0000 | +| `st_stuff.c` | 13.7 | | 0.0000 | +| `bootdefs.h` | 13.6 | | 0.0000 | +| `net.c` | 12.4 | | 0.0000 | +| `tls_crypto.c` | 11.6 | | 0.0000 | + +--- + +## Community Analysis + +Files grouped by import-based community detection. Cohesion measures how tightly connected each community is internally. + +### root (Cohesion: 0.62) + +**10 files** in this community: + +- `block.c` (c, 8 symbols) +- `block.h` (h, 4 symbols) +- `ide.c` (c, 14 symbols) +- `ide.h` (h, 27 symbols) +- `kernel.h` (h, 34 symbols) +- `lz4_kernel.c` (c, 9 symbols) +- `lz4_kernel.h` (h, 1 symbols) +- `minifs.c` (c, 53 symbols) +- `net.c` (c, 84 symbols) +- `pcspk.c` (c, 7 symbols) + +### root (Cohesion: 0.72) + +**16 files** in this community: + +- `bootdefs.h` (h, 96 symbols) +- `kernel.c` (c, 253 symbols) +- `minifs.h` (h, 31 symbols) +- `net.h` (h, 34 symbols) +- `sched.c` (c, 31 symbols) +- `sched.h` (h, 8 symbols) +- `tls.c` (c, 26 symbols) +- `tls.h` (h, 42 symbols) +- `tls_crypto.c` (c, 76 symbols) +- `tls_port.h` (h, 27 symbols) +- `tls_roots.h` (h, 0 symbols) +- `tls_test.c` (c, 23 symbols) +- `tls_test_roots.h` (h, 0 symbols) +- `tls_x509.c` (c, 23 symbols) +- `vga_fb.c` (c, 35 symbols) +- `vga_fb.h` (h, 24 symbols) + +### mcp (Cohesion: 1.00) + +**2 files** in this community: + +- `minios_addons.py` (py, 16 symbols) +- `minios_mcp.py` (py, 48 symbols) + +--- + +## Surprising Connections + +Files in different communities connected through 3+ indirect hops. + +- `lz4_kernel.h` <-> `tls_roots.h` (5 hops, across 2 communities) +- `lz4_kernel.h` <-> `tls_test_roots.h` (5 hops, across 2 communities) +- `block.c` <-> `tls_roots.h` (4 hops, across 2 communities) +- `block.c` <-> `tls_test_roots.h` (4 hops, across 2 communities) +- `block.h` <-> `tls_roots.h` (4 hops, across 2 communities) + +--- + +## Suggested Questions + +Auto-generated exploration prompts based on graph structure: + +- What does kernel.c depend on, and what depends on it? (9 connections) +- What does d_englsh.h depend on, and what depends on it? (0 connections) +- What does kernel.h depend on, and what depends on it? (10 connections) +- How are the 10 files in 'root' related to each other? +- Why are lz4_kernel.h and tls_roots.h connected through 5 hops across 2 communities? + +--- + +## Taint Propagation Map + +Taint analysis traces how dangerous imports propagate through the codebase via transitive dependencies. Source files import dangerous modules directly; sink files receive the danger indirectly. + +**Taint Sources:** 6 | **Taint Sinks:** 6 | **Propagation Paths:** 7 + +- `mcp_dbg_driver.py` imports `subprocess` (0 hop to `mcp_dbg_driver.py`) [high] + Path: mcp_dbg_driver.py +- `mcp_dogfood.py` imports `subprocess` (0 hop to `mcp_dogfood.py`) [high] + Path: mcp_dogfood.py +- `minios_addons.py` imports `subprocess` (0 hop to `minios_addons.py`) [high] + Path: minios_addons.py +- `minios_mcp.py` imports `subprocess` (0 hop to `minios_mcp.py`) [high] + Path: minios_mcp.py +- `minios_mcp.py` imports `subprocess` (1 hop to `minios_addons.py`) [high] + Path: minios_mcp.py -> minios_addons.py +- `test_minios_mcp.py` imports `subprocess` (0 hop to `test_minios_mcp.py`) [high] + Path: test_minios_mcp.py +- `tls_test.py` imports `subprocess` (0 hop to `tls_test.py`) [high] + Path: tls_test.py + +--- + +## Hotspot Analysis + +Files ranked by combined complexity (symbol count) and centrality (connection count). High-scoring files are architecturally critical and may need refactoring attention. + +| File | Complexity | Centrality | Combined | Symbols | Connections | +|------|-----------|------------|----------|---------|-------------| +| `mutate_mcp.sh` | 0.004 | 0.000 | 0.001 | 1 | 0 | +| `p_telept.c` | 0.004 | 0.143 | 0.087 | 1 | 6 | +| `r_sky.c` | 0.004 | 0.071 | 0.044 | 1 | 3 | +| `tables.c` | 0.004 | 0.024 | 0.016 | 1 | 1 | +| `w_main.c` | 0.004 | 0.167 | 0.101 | 1 | 7 | +| `m_fixed.c` | 0.007 | 0.095 | 0.060 | 2 | 4 | +| `p_floor.c` | 0.014 | 0.167 | 0.106 | 4 | 7 | +| `p_switch.c` | 0.014 | 0.238 | 0.148 | 4 | 10 | +| `lz4_kernel.h` | 0.004 | 0.048 | 0.030 | 1 | 2 | +| `p_sight.c` | 0.018 | 0.095 | 0.064 | 5 | 4 | +| `d_main.c` | 0.073 | 1.000 | 0.629 | 21 | 42 | +| `g_game.c` | 0.168 | 0.857 | 0.581 | 48 | 36 | +| `st_stuff.c` | 0.479 | 0.571 | 0.534 | 137 | 24 | +| `kernel.c` | 0.885 | 0.214 | 0.482 | 253 | 9 | +| `m_menu.c` | 0.210 | 0.595 | 0.441 | 60 | 25 | + +--- + +## Change Impact Analysis + +Files sorted by how many other files would be affected if they changed. High-impact files should be changed with caution. + +| File | Direct Dependents | Transitive Dependents | Total Impact | +|------|------------------|----------------------|--------------| +| `minios_addons.py` | 1 | 0 | 1 | +| `app.py` | 0 | 0 | 0 | +| `block.c` | 0 | 0 | 0 | +| `block.h` | 0 | 0 | 0 | +| `bootdefs.h` | 0 | 0 | 0 | +| `bootloader.c` | 0 | 0 | 0 | +| `ctx_sw.S` | 0 | 0 | 0 | +| `cvm_host.c` | 0 | 0 | 0 | +| `gen_minifs.py` | 0 | 0 | 0 | +| `ide.c` | 0 | 0 | 0 | +| `ide.h` | 0 | 0 | 0 | +| `install.sh` | 0 | 0 | 0 | +| `isr_stubs.S` | 0 | 0 | 0 | +| `kernel.c` | 0 | 0 | 0 | +| `kernel.h` | 0 | 0 | 0 | + +--- + +## Suggested Linting Rules + +Automatically suggested linting and security rules based on patterns detected in the codebase. These can be exported as Semgrep rules using the `--export-rules` flag. + +| Rule ID | Severity | Description | Language | Matches | +|---------|----------|-------------|----------|---------| +| `RM001` | info | Large number of functions in py: 211 total | py | 211 | +| `RM002` | info | Large number of functions in c: 1701 total | c | 1701 | +| `RM003` | info | Large number of functions in h: 6 total | h | 6 | +| `RM004` | info | Large number of functions in S: 71 total | S | 71 | +| `RM005` | info | Large number of functions in sh: 12 total | sh | 12 | +| `RM006` | info | Large number of functions in s: 103 total | s | 103 | +| `RM007` | info | Print statement found (consider logging instead) | python | 48 | + +--- + +## Orphans + +Files with no documentation or low connectivity. These are candidates for documentation investment or cleanup. + +- `ctx_sw.S` (3 symbols, no doc) +- `cvm_host.c` (45 symbols, no doc) +- `gen_minifs.py` (0 symbols, no doc) +- `install.sh` (0 symbols, no doc) +- `isr_stubs.S` (24 symbols, no doc) +- `__init__.py` (0 symbols, no doc) +- `mcp_dbg_driver.py` (6 symbols, no doc) +- `mcp_dogfood.py` (6 symbols, no doc) +- `minifs_dump.py` (12 symbols, no doc) +- `minifs_fsck.py` (14 symbols, no doc) +- `mkfs.minifs.py` (19 symbols, no doc) +- `mkramdisk.py` (2 symbols, no doc) +- `cp.s` (2 symbols, no doc) +- `fib.s` (3 symbols, no doc) +- `freedom.s` (91 symbols, no doc) +- `http.s` (3 symbols, no doc) +- `ldhello.s` (2 symbols, no doc) +- `w1.s` (2 symbols, no doc) +- `doom.h` (1 symbols, no doc) +- `icon.c` (0 symbols, no doc) +- *... and 8 more* + +--- + +## Query Recipes + +Example queries you can run against this knowledge base using the ranking engine: + +``` +# Find files most relevant to a concept +readmenator query "Where is the import resolver implemented?" + +# Rank files by relevance to a topic +readmenator query "How does documentation generation work?" + +# Explain why a file ranks highly +readmenator query "explain readmenator/_documentation.py" + +# Trace dependency paths with ranked context +readmenator query "path from CLI to exporter" +``` + +The ranking model uses the following signals: + +- **Personalized PageRank** (45% weight): query-specific relevance via seed propagation +- **Global Authority** (20% weight): structural importance via standard PageRank +- **Test Coverage** (15% weight): fraction of symbols referenced in test files +- **Doc Coverage** (10% weight): presence of docstrings and file-level docs +- **Freshness** (10% weight): recent modification activity + +Results include score decomposition and justification paths for each ranked item. + +--- + +## Structural Knowledge Map + +```mermaid +graph TD + classDef mod fill:#1e1e1e,stroke:#ff6666,stroke-width:2px,color:#fff; + classDef cls fill:#2d2d2d,stroke:#4ec9b0,stroke-width:2px,color:#fff; + classDef fn fill:#333,stroke:#dcdcaa,stroke-width:1px,color:#dcdcaa; + classDef ext fill:#111,stroke:#666,stroke-dasharray:5 5,color:#aaa; + progs_doomgeneric_d_main_c["d_main.c (c)"] + class progs_doomgeneric_d_main_c mod; + progs_doomgeneric_d_main_c_D_ProcessEvents["D_ProcessEvents"] + class progs_doomgeneric_d_main_c_D_ProcessEvents fn; + progs_doomgeneric_d_main_c --> progs_doomgeneric_d_main_c_D_ProcessEvents + progs_doomgeneric_d_main_c_D_Display["D_Display"] + class progs_doomgeneric_d_main_c_D_Display fn; + progs_doomgeneric_d_main_c --> progs_doomgeneric_d_main_c_D_Display + progs_doomgeneric_d_main_c_D_BindVariables["D_BindVariables"] + class progs_doomgeneric_d_main_c_D_BindVariables fn; + progs_doomgeneric_d_main_c --> progs_doomgeneric_d_main_c_D_BindVariables + progs_doomgeneric_d_main_c_D_GrabMouseCallback["D_GrabMouseCallback"] + class progs_doomgeneric_d_main_c_D_GrabMouseCallback fn; + progs_doomgeneric_d_main_c --> progs_doomgeneric_d_main_c_D_GrabMouseCallback + progs_doomgeneric_d_main_c_D_DoomLoop["D_DoomLoop"] + class progs_doomgeneric_d_main_c_D_DoomLoop fn; + progs_doomgeneric_d_main_c --> progs_doomgeneric_d_main_c_D_DoomLoop + progs_doomgeneric_g_game_c["g_game.c (c)"] + class progs_doomgeneric_g_game_c mod; + progs_doomgeneric_m_menu_c["m_menu.c (c)"] + class progs_doomgeneric_m_menu_c mod; + progs_doomgeneric_st_stuff_c["st_stuff.c (c)"] + class progs_doomgeneric_st_stuff_c mod; + progs_doomgeneric_i_input_c["i_input.c (c)"] + class progs_doomgeneric_i_input_c mod; + progs_doomgeneric_i_system_c["i_system.c (c)"] + class progs_doomgeneric_i_system_c mod; + progs_doomgeneric_m_misc_c["m_misc.c (c)"] + class progs_doomgeneric_m_misc_c mod; + progs_doomgeneric_d_loop_c["d_loop.c (c)"] + class progs_doomgeneric_d_loop_c mod; + progs_doomgeneric_am_map_c["am_map.c (c)"] + class progs_doomgeneric_am_map_c mod; + progs_doomgeneric_p_spec_c["p_spec.c (c)"] + class progs_doomgeneric_p_spec_c mod; + progs_doomgeneric_s_sound_c["s_sound.c (c)"] + class progs_doomgeneric_s_sound_c mod; + progs_doomgeneric_hu_stuff_c["hu_stuff.c (c)"] + class progs_doomgeneric_hu_stuff_c mod; + progs_doomgeneric_d_net_c["d_net.c (c)"] + class progs_doomgeneric_d_net_c mod; + mcp_test_minios_mcp_py["test_minios_mcp.py (py)"] + class mcp_test_minios_mcp_py mod; + progs_doomgeneric_wi_stuff_c["wi_stuff.c (c)"] + class progs_doomgeneric_wi_stuff_c mod; + progs_doomgeneric_v_video_c["v_video.c (c)"] + class progs_doomgeneric_v_video_c mod; + progs_doomgeneric_i_video_c["i_video.c (c)"] + class progs_doomgeneric_i_video_c mod; + progs_doomgeneric_d_iwad_c["d_iwad.c (c)"] + class progs_doomgeneric_d_iwad_c mod; + progs_doomgeneric_f_finale_c["f_finale.c (c)"] + class progs_doomgeneric_f_finale_c mod; + progs_doomgeneric_p_map_c["p_map.c (c)"] + class progs_doomgeneric_p_map_c mod; + progs_doomgeneric_m_config_c["m_config.c (c)"] + class progs_doomgeneric_m_config_c mod; + progs_doomgeneric_p_setup_c["p_setup.c (c)"] + class progs_doomgeneric_p_setup_c mod; + progs_doomgeneric_r_data_c["r_data.c (c)"] + class progs_doomgeneric_r_data_c mod; + progs_doomgeneric_w_wad_c["w_wad.c (c)"] + class progs_doomgeneric_w_wad_c mod; + progs_doomgeneric_p_saveg_c["p_saveg.c (c)"] + class progs_doomgeneric_p_saveg_c mod; + subgraph community_2 ["mcp"] + mcp_minios_mcp_py["minios_mcp.py (py)"] + class mcp_minios_mcp_py mod; + progs_doomgeneric_p_inter_c["p_inter.c (c)"] + class progs_doomgeneric_p_inter_c mod; + progs_doomgeneric_st_lib_c["st_lib.c (c)"] + class progs_doomgeneric_st_lib_c mod; + progs_doomgeneric_p_enemy_c["p_enemy.c (c)"] + class progs_doomgeneric_p_enemy_c mod; + progs_doomgeneric_i_sound_c["i_sound.c (c)"] + class progs_doomgeneric_i_sound_c mod; + end + subgraph community_1 ["root"] + tls_test_c["tls_test.c (c)"] + class tls_test_c mod; + progs_doomgeneric_p_mobj_c["p_mobj.c (c)"] + class progs_doomgeneric_p_mobj_c mod; + progs_doomgeneric_doomgeneric_soso_c["doomgeneric_soso.c (c)"] + class progs_doomgeneric_doomgeneric_soso_c mod; + progs_doomgeneric_doomgeneric_sosox_c["doomgeneric_sosox.c (c)"] + class progs_doomgeneric_doomgeneric_sosox_c mod; + progs_doomgeneric_i_joystick_c["i_joystick.c (c)"] + class progs_doomgeneric_i_joystick_c mod; + progs_doomgeneric_r_things_c["r_things.c (c)"] + class progs_doomgeneric_r_things_c mod; + tls_test_py["tls_test.py (py)"] + class tls_test_py mod; + progs_doomgeneric_doomgeneric_xlib_c["doomgeneric_xlib.c (c)"] + class progs_doomgeneric_doomgeneric_xlib_c mod; + progs_doomgeneric_p_plats_c["p_plats.c (c)"] + class progs_doomgeneric_p_plats_c mod; + progs_doomgeneric_p_switch_c["p_switch.c (c)"] + class progs_doomgeneric_p_switch_c mod; + progs_doomgeneric_r_local_h["r_local.h (h)"] + class progs_doomgeneric_r_local_h mod; + kernel_c["kernel.c (c)"] + class kernel_c mod; + progs_doomgeneric_p_pspr_c["p_pspr.c (c)"] + class progs_doomgeneric_p_pspr_c mod; + progs_doomgeneric_i_minios_sound_c["i_minios_sound.c (c)"] + class progs_doomgeneric_i_minios_sound_c mod; + progs_doomgeneric_p_doors_c["p_doors.c (c)"] + class progs_doomgeneric_p_doors_c mod; + progs_doomgeneric_r_plane_c["r_plane.c (c)"] + class progs_doomgeneric_r_plane_c mod; + tls_port_h["tls_port.h (h)"] + class tls_port_h mod; + progs_doomgeneric_hu_lib_c["hu_lib.c (c)"] + class progs_doomgeneric_hu_lib_c mod; + progs_doomgeneric_r_draw_c["r_draw.c (c)"] + class progs_doomgeneric_r_draw_c mod; + progs_doomgeneric_r_main_c["r_main.c (c)"] + class progs_doomgeneric_r_main_c mod; + progs_doomgeneric_r_bsp_c["r_bsp.c (c)"] + class progs_doomgeneric_r_bsp_c mod; + progs_doomgeneric_m_argv_c["m_argv.c (c)"] + class progs_doomgeneric_m_argv_c mod; + progs_doomgeneric_i_scale_c["i_scale.c (c)"] + class progs_doomgeneric_i_scale_c mod; + mcp_minios_addons_py["minios_addons.py (py)"] + class mcp_minios_addons_py mod; + progs_doomgeneric_statdump_c["statdump.c (c)"] + class progs_doomgeneric_statdump_c mod; + progs_doomgeneric_doomgeneric_sdl_c["doomgeneric_sdl.c (c)"] + class progs_doomgeneric_doomgeneric_sdl_c mod; + progs_doomgeneric_f_wipe_c["f_wipe.c (c)"] + class progs_doomgeneric_f_wipe_c mod; + progs_doomgeneric_p_ceilng_c["p_ceilng.c (c)"] + class progs_doomgeneric_p_ceilng_c mod; + progs_doomgeneric_r_segs_c["r_segs.c (c)"] + class progs_doomgeneric_r_segs_c mod; + progs_doomgeneric_p_floor_c["p_floor.c (c)"] + class progs_doomgeneric_p_floor_c mod; + progs_doomgeneric_w_checksum_c["w_checksum.c (c)"] + class progs_doomgeneric_w_checksum_c mod; + progs_doomgeneric_w_main_c["w_main.c (c)"] + class progs_doomgeneric_w_main_c mod; + progs_doomgeneric_sha1_c["sha1.c (c)"] + class progs_doomgeneric_sha1_c mod; + progs_doomgeneric_p_maputl_c["p_maputl.c (c)"] + class progs_doomgeneric_p_maputl_c mod; + progs_doomgeneric_r_defs_h["r_defs.h (h)"] + class progs_doomgeneric_r_defs_h mod; + progs_doomgeneric_gusconf_c["gusconf.c (c)"] + class progs_doomgeneric_gusconf_c mod; + mcp_mcp_dbg_driver_py["mcp_dbg_driver.py (py)"] + class mcp_mcp_dbg_driver_py mod; + mcp_mcp_dogfood_py["mcp_dogfood.py (py)"] + class mcp_mcp_dogfood_py mod; + progs_doomgeneric_i_endoom_c["i_endoom.c (c)"] + class progs_doomgeneric_i_endoom_c mod; + progs_doomgeneric_p_telept_c["p_telept.c (c)"] + class progs_doomgeneric_p_telept_c mod; + progs_doomgeneric_info_c["info.c (c)"] + class progs_doomgeneric_info_c mod; + end + subgraph community_0 ["root"] + minifs_c["minifs.c (c)"] + class minifs_c mod; + progs_doomgeneric_p_lights_c["p_lights.c (c)"] + class progs_doomgeneric_p_lights_c mod; + progs_doomgeneric_doomdef_h["doomdef.h (h)"] + class progs_doomgeneric_doomdef_h mod; + progs_doomgeneric_i_cdmus_c["i_cdmus.c (c)"] + class progs_doomgeneric_i_cdmus_c mod; + progs_doomgeneric_m_controls_c["m_controls.c (c)"] + class progs_doomgeneric_m_controls_c mod; + progs_doomgeneric_memio_c["memio.c (c)"] + class progs_doomgeneric_memio_c mod; + progs_doomgeneric_doomstat_h["doomstat.h (h)"] + class progs_doomgeneric_doomstat_h mod; + progs_doomgeneric_w_file_c["w_file.c (c)"] + class progs_doomgeneric_w_file_c mod; + test_http_server_py["test_http_server.py (py)"] + class test_http_server_py mod; + progs_doomgeneric_d_player_h["d_player.h (h)"] + class progs_doomgeneric_d_player_h mod; + progs_doomgeneric_p_mobj_h["p_mobj.h (h)"] + class progs_doomgeneric_p_mobj_h mod; + sched_c["sched.c (c)"] + class sched_c mod; + progs_doomgeneric_doomgeneric_minios_c["doomgeneric_minios.c (c)"] + class progs_doomgeneric_doomgeneric_minios_c mod; + progs_doomgeneric_net_defs_h["net_defs.h (h)"] + class progs_doomgeneric_net_defs_h mod; + progs_doomgeneric_doomgeneric_win_c["doomgeneric_win.c (c)"] + class progs_doomgeneric_doomgeneric_win_c mod; + progs_doomgeneric_p_user_c["p_user.c (c)"] + class progs_doomgeneric_p_user_c mod; + progs_doomgeneric_i_timer_c["i_timer.c (c)"] + class progs_doomgeneric_i_timer_c mod; + progs_doomgeneric_p_sight_c["p_sight.c (c)"] + class progs_doomgeneric_p_sight_c mod; + progs_doomgeneric_deh_main_h["deh_main.h (h)"] + class progs_doomgeneric_deh_main_h mod; + progs_doomgeneric_w_file_stdc_c["w_file_stdc.c (c)"] + class progs_doomgeneric_w_file_stdc_c mod; + progs_doomgeneric_m_fixed_c["m_fixed.c (c)"] + class progs_doomgeneric_m_fixed_c mod; + progs_doomgeneric_w_wad_h["w_wad.h (h)"] + class progs_doomgeneric_w_wad_h mod; + progs_doomgeneric_net_client_h["net_client.h (h)"] + class progs_doomgeneric_net_client_h mod; + tls_c["tls.c (c)"] + class tls_c mod; + mkfs_minifs_py["mkfs.minifs.py (py)"] + class mkfs_minifs_py mod; + progs_doomgeneric_z_zone_c["z_zone.c (c)"] + class progs_doomgeneric_z_zone_c mod; + progs_doomgeneric_doomtype_h["doomtype.h (h)"] + class progs_doomgeneric_doomtype_h mod; + block_c["block.c (c)"] + class block_c mod; + progs_doomgeneric_p_tick_c["p_tick.c (c)"] + class progs_doomgeneric_p_tick_c mod; + progs_doomgeneric_st_stuff_h["st_stuff.h (h)"] + class progs_doomgeneric_st_stuff_h mod; + progs_doomgeneric_p_pspr_h["p_pspr.h (h)"] + class progs_doomgeneric_p_pspr_h mod; + progs_doomgeneric_sounds_c["sounds.c (c)"] + class progs_doomgeneric_sounds_c mod; + mkramdisk_py["mkramdisk.py (py)"] + class mkramdisk_py mod; + progs_doomgeneric_m_cheat_c["m_cheat.c (c)"] + class progs_doomgeneric_m_cheat_c mod; + progs_doomgeneric_g_game_h["g_game.h (h)"] + class progs_doomgeneric_g_game_h mod; + progs_doomgeneric_m_misc_h["m_misc.h (h)"] + class progs_doomgeneric_m_misc_h mod; + progs_doomgeneric_r_sky_c["r_sky.c (c)"] + class progs_doomgeneric_r_sky_c mod; + net_c["net.c (c)"] + class net_c mod; + tls_crypto_c["tls_crypto.c (c)"] + class tls_crypto_c mod; + vga_fb_c["vga_fb.c (c)"] + class vga_fb_c mod; + progs_doomgeneric_p_local_h["p_local.h (h)"] + class progs_doomgeneric_p_local_h mod; + tls_x509_c["tls_x509.c (c)"] + class tls_x509_c mod; + progs_doomgeneric_tables_h["tables.h (h)"] + class progs_doomgeneric_tables_h mod; + ide_c["ide.c (c)"] + class ide_c mod; + minifs_fsck_py["minifs_fsck.py (py)"] + class minifs_fsck_py mod; + minifs_dump_py["minifs_dump.py (py)"] + class minifs_dump_py mod; + progs_doomgeneric_doomdata_h["doomdata.h (h)"] + class progs_doomgeneric_doomdata_h mod; + lz4_kernel_c["lz4_kernel.c (c)"] + class lz4_kernel_c mod; + progs_doomgeneric_r_main_h["r_main.h (h)"] + class progs_doomgeneric_r_main_h mod; + progs_doomgeneric_d_mode_c["d_mode.c (c)"] + class progs_doomgeneric_d_mode_c mod; + progs_doomgeneric_deh_str_h["deh_str.h (h)"] + class progs_doomgeneric_deh_str_h mod; + progs_doomgeneric_am_map_h["am_map.h (h)"] + class progs_doomgeneric_am_map_h mod; + progs_doomgeneric_d_event_c["d_event.c (c)"] + class progs_doomgeneric_d_event_c mod; + progs_doomgeneric_doomgeneric_h["doomgeneric.h (h)"] + class progs_doomgeneric_doomgeneric_h mod; + progs_doomgeneric_v_video_h["v_video.h (h)"] + class progs_doomgeneric_v_video_h mod; + progs_doomgeneric_w_file_h["w_file.h (h)"] + class progs_doomgeneric_w_file_h mod; + progs_doomgeneric_f_finale_h["f_finale.h (h)"] + class progs_doomgeneric_f_finale_h mod; + progs_doomgeneric_i_main_c["i_main.c (c)"] + class progs_doomgeneric_i_main_c mod; + progs_doomgeneric_i_system_h["i_system.h (h)"] + class progs_doomgeneric_i_system_h mod; + progs_doomgeneric_m_bbox_h["m_bbox.h (h)"] + class progs_doomgeneric_m_bbox_h mod; + progs_doomgeneric_r_data_h["r_data.h (h)"] + class progs_doomgeneric_r_data_h mod; + progs_doomgeneric_r_state_h["r_state.h (h)"] + class progs_doomgeneric_r_state_h mod; + progs_doomgeneric_s_sound_h["s_sound.h (h)"] + class progs_doomgeneric_s_sound_h mod; + progs_doomgeneric_d_items_c["d_items.c (c)"] + class progs_doomgeneric_d_items_c mod; + progs_doomgeneric_doomstat_c["doomstat.c (c)"] + class progs_doomgeneric_doomstat_c mod; + cvm_host_c["cvm_host.c (c)"] + class cvm_host_c mod; + progs_doomgeneric_deh_misc_h["deh_misc.h (h)"] + class progs_doomgeneric_deh_misc_h mod; + vga_fb_h["vga_fb.h (h)"] + class vga_fb_h mod; + progs_doomgeneric_hu_stuff_h["hu_stuff.h (h)"] + class progs_doomgeneric_hu_stuff_h mod; + progs_doomgeneric_i_swap_h["i_swap.h (h)"] + class progs_doomgeneric_i_swap_h mod; + sched_h["sched.h (h)"] + class sched_h mod; + pcspk_c["pcspk.c (c)"] + class pcspk_c mod; + progs_doomgeneric_i_video_h["i_video.h (h)"] + class progs_doomgeneric_i_video_h mod; + progs_doomgeneric_d_iwad_h["d_iwad.h (h)"] + class progs_doomgeneric_d_iwad_h mod; + progs_doomgeneric_hu_lib_h["hu_lib.h (h)"] + class progs_doomgeneric_hu_lib_h mod; + progs_doomgeneric_dstrings_h["dstrings.h (h)"] + class progs_doomgeneric_dstrings_h mod; + progs_doomgeneric_i_sound_h["i_sound.h (h)"] + class progs_doomgeneric_i_sound_h mod; + progs_doomgeneric_m_bbox_c["m_bbox.c (c)"] + class progs_doomgeneric_m_bbox_c mod; + progs_doomgeneric_p_saveg_h["p_saveg.h (h)"] + class progs_doomgeneric_p_saveg_h mod; + progs_doomgeneric_sha1_h["sha1.h (h)"] + class progs_doomgeneric_sha1_h mod; + progs_doomgeneric_z_zone_h["z_zone.h (h)"] + class progs_doomgeneric_z_zone_h mod; + progs_doomgeneric_d_event_h["d_event.h (h)"] + class progs_doomgeneric_d_event_h mod; + progs_doomgeneric_d_items_h["d_items.h (h)"] + class progs_doomgeneric_d_items_h mod; + progs_doomgeneric_d_loop_h["d_loop.h (h)"] + class progs_doomgeneric_d_loop_h mod; + progs_doomgeneric_d_main_h["d_main.h (h)"] + class progs_doomgeneric_d_main_h mod; + progs_doomgeneric_d_mode_h["d_mode.h (h)"] + class progs_doomgeneric_d_mode_h mod; + progs_doomgeneric_d_textur_h["d_textur.h (h)"] + class progs_doomgeneric_d_textur_h mod; + progs_doomgeneric_d_ticcmd_h["d_ticcmd.h (h)"] + class progs_doomgeneric_d_ticcmd_h mod; + progs_doomgeneric_doomgeneric_c["doomgeneric.c (c)"] + class progs_doomgeneric_doomgeneric_c mod; + progs_doomgeneric_dummy_c["dummy.c (c)"] + class progs_doomgeneric_dummy_c mod; + progs_doomgeneric_gusconf_h["gusconf.h (h)"] + class progs_doomgeneric_gusconf_h mod; + progs_doomgeneric_i_scale_h["i_scale.h (h)"] + class progs_doomgeneric_i_scale_h mod; + progs_doomgeneric_info_h["info.h (h)"] + class progs_doomgeneric_info_h mod; + progs_doomgeneric_m_argv_h["m_argv.h (h)"] + class progs_doomgeneric_m_argv_h mod; + progs_doomgeneric_m_config_h["m_config.h (h)"] + class progs_doomgeneric_m_config_h mod; + progs_doomgeneric_m_menu_h["m_menu.h (h)"] + class progs_doomgeneric_m_menu_h mod; + progs_doomgeneric_m_random_h["m_random.h (h)"] + class progs_doomgeneric_m_random_h mod; + progs_doomgeneric_net_gui_h["net_gui.h (h)"] + class progs_doomgeneric_net_gui_h mod; + progs_doomgeneric_net_io_h["net_io.h (h)"] + class progs_doomgeneric_net_io_h mod; + progs_doomgeneric_net_loop_h["net_loop.h (h)"] + class progs_doomgeneric_net_loop_h mod; + progs_doomgeneric_net_packet_h["net_packet.h (h)"] + class progs_doomgeneric_net_packet_h mod; + progs_doomgeneric_net_query_h["net_query.h (h)"] + class progs_doomgeneric_net_query_h mod; + progs_doomgeneric_net_sdl_h["net_sdl.h (h)"] + class progs_doomgeneric_net_sdl_h mod; + progs_doomgeneric_r_plane_h["r_plane.h (h)"] + class progs_doomgeneric_r_plane_h mod; + progs_doomgeneric_sounds_h["sounds.h (h)"] + class progs_doomgeneric_sounds_h mod; + progs_doomgeneric_st_lib_h["st_lib.h (h)"] + class progs_doomgeneric_st_lib_h mod; + progs_doomgeneric_tables_c["tables.c (c)"] + class progs_doomgeneric_tables_c mod; + progs_doomgeneric_w_checksum_h["w_checksum.h (h)"] + class progs_doomgeneric_w_checksum_h mod; + progs_doomgeneric_wi_stuff_h["wi_stuff.h (h)"] + class progs_doomgeneric_wi_stuff_h mod; + gen_minifs_py["gen_minifs.py (py)"] + class gen_minifs_py mod; + progs_doomgeneric_doomdef_c["doomdef.c (c)"] + class progs_doomgeneric_doomdef_c mod; + progs_doomgeneric_dstrings_c["dstrings.c (c)"] + class progs_doomgeneric_dstrings_c mod; + progs_doomgeneric_d_englsh_h["d_englsh.h (h)"] + class progs_doomgeneric_d_englsh_h mod; + bootdefs_h["bootdefs.h (h)"] + class bootdefs_h mod; + progs_asm_freedom_s["freedom.s (s)"] + class progs_asm_freedom_s mod; + progs_doomgeneric_doomkeys_h["doomkeys.h (h)"] + class progs_doomgeneric_doomkeys_h mod; + tls_h["tls.h (h)"] + class tls_h mod; + progs_src_freedom_c["freedom.c (c)"] + class progs_src_freedom_c mod; + kernel_h["kernel.h (h)"] + class kernel_h mod; + net_h["net.h (h)"] + class net_h mod; + stage2_S["stage2.S (S)"] + class stage2_S mod; + minifs_h["minifs.h (h)"] + class minifs_h mod; + ide_h["ide.h (h)"] + class ide_h mod; + isr_stubs_S["isr_stubs.S (S)"] + class isr_stubs_S mod; + progs_doomgeneric_p_spec_h["p_spec.h (h)"] + class progs_doomgeneric_p_spec_h mod; + progs_doomgeneric_config_h["config.h (h)"] + class progs_doomgeneric_config_h mod; + progs_doomgeneric_i_joystick_h["i_joystick.h (h)"] + class progs_doomgeneric_i_joystick_h mod; + stage1_S["stage1.S (S)"] + class stage1_S mod; + test_bdd_sh["test_bdd.sh (sh)"] + class test_bdd_sh mod; + progs_doomgeneric_i_cdmus_h["i_cdmus.h (h)"] + class progs_doomgeneric_i_cdmus_h mod; + progs_src_lxhello_c["lxhello.c (c)"] + class progs_src_lxhello_c mod; + block_h["block.h (h)"] + class block_h mod; + progs_doomgeneric_m_cheat_h["m_cheat.h (h)"] + class progs_doomgeneric_m_cheat_h mod; + ctx_sw_S["ctx_sw.S (S)"] + class ctx_sw_S mod; + progs_asm_fib_s["fib.s (s)"] + class progs_asm_fib_s mod; + progs_asm_http_s["http.s (s)"] + class progs_asm_http_s mod; + progs_doomgeneric_m_fixed_h["m_fixed.h (h)"] + class progs_doomgeneric_m_fixed_h mod; + progs_doomgeneric_m_random_c["m_random.c (c)"] + class progs_doomgeneric_m_random_c mod; + progs_doomgeneric_r_sky_h["r_sky.h (h)"] + class progs_doomgeneric_r_sky_h mod; + progs_doomgeneric_w_merge_h["w_merge.h (h)"] + class progs_doomgeneric_w_merge_h mod; + progs_src_cp_c["cp.c (c)"] + class progs_src_cp_c mod; + progs_src_cpl_c["cpl.c (c)"] + class progs_src_cpl_c mod; + progs_src_kmem_c["kmem.c (c)"] + class progs_src_kmem_c mod; + progs_src_nx_c["nx.c (c)"] + class progs_src_nx_c mod; + bootloader_c["bootloader.c (c)"] + class bootloader_c mod; + mutate_sh["mutate.sh (sh)"] + class mutate_sh mod; + progs_asm_cp_s["cp.s (s)"] + class progs_asm_cp_s mod; + progs_asm_ldhello_s["ldhello.s (s)"] + class progs_asm_ldhello_s mod; + progs_asm_w1_s["w1.s (s)"] + class progs_asm_w1_s mod; + progs_doomgeneric_d_think_h["d_think.h (h)"] + class progs_doomgeneric_d_think_h mod; + progs_doomgeneric_doomfeatures_h["doomfeatures.h (h)"] + class progs_doomgeneric_doomfeatures_h mod; + progs_doomgeneric_i_timer_h["i_timer.h (h)"] + class progs_doomgeneric_i_timer_h mod; + progs_doomgeneric_r_things_h["r_things.h (h)"] + class progs_doomgeneric_r_things_h mod; + progs_src_fib_c["fib.c (c)"] + class progs_src_fib_c mod; + progs_src_http_c["http.c (c)"] + class progs_src_http_c mod; + progs_src_test_c["test.c (c)"] + class progs_src_test_c mod; + lz4_kernel_h["lz4_kernel.h (h)"] + class lz4_kernel_h mod; + mcp_mutate_mcp_sh["mutate_mcp.sh (sh)"] + class mcp_mutate_mcp_sh mod; + pcspk_h["pcspk.h (h)"] + class pcspk_h mod; + progs_doomgeneric_doom_h["doom.h (h)"] + class progs_doomgeneric_doom_h mod; + progs_doomgeneric_f_wipe_h["f_wipe.h (h)"] + class progs_doomgeneric_f_wipe_h mod; + progs_doomgeneric_i_endoom_h["i_endoom.h (h)"] + class progs_doomgeneric_i_endoom_h mod; + progs_doomgeneric_m_controls_h["m_controls.h (h)"] + class progs_doomgeneric_m_controls_h mod; + progs_doomgeneric_memio_h["memio.h (h)"] + class progs_doomgeneric_memio_h mod; + progs_doomgeneric_net_dedicated_h["net_dedicated.h (h)"] + class progs_doomgeneric_net_dedicated_h mod; + progs_doomgeneric_net_server_h["net_server.h (h)"] + class progs_doomgeneric_net_server_h mod; + progs_doomgeneric_p_inter_h["p_inter.h (h)"] + class progs_doomgeneric_p_inter_h mod; + progs_doomgeneric_p_setup_h["p_setup.h (h)"] + class progs_doomgeneric_p_setup_h mod; + progs_doomgeneric_p_tick_h["p_tick.h (h)"] + class progs_doomgeneric_p_tick_h mod; + progs_doomgeneric_r_bsp_h["r_bsp.h (h)"] + class progs_doomgeneric_r_bsp_h mod; + progs_doomgeneric_r_draw_h["r_draw.h (h)"] + class progs_doomgeneric_r_draw_h mod; + progs_doomgeneric_r_segs_h["r_segs.h (h)"] + class progs_doomgeneric_r_segs_h mod; + progs_doomgeneric_statdump_h["statdump.h (h)"] + class progs_doomgeneric_statdump_h mod; + progs_doomgeneric_v_patch_h["v_patch.h (h)"] + class progs_doomgeneric_v_patch_h mod; + progs_doomgeneric_w_main_h["w_main.h (h)"] + class progs_doomgeneric_w_main_h mod; + progs_src_ftest_c["ftest.c (c)"] + class progs_src_ftest_c mod; + progs_src_hello_c["hello.c (c)"] + class progs_src_hello_c mod; + progs_src_ldhello_c["ldhello.c (c)"] + class progs_src_ldhello_c mod; + progs_src_w1_c["w1.c (c)"] + class progs_src_w1_c mod; + app_py["app.py (py)"] + class app_py mod; + install_sh["install.sh (sh)"] + class install_sh mod; + mcp___init___py["__init__.py (py)"] + class mcp___init___py mod; + mkroots_sh["mkroots.sh (sh)"] + class mkroots_sh mod; + progs_doomgeneric_icon_c["icon.c (c)"] + class progs_doomgeneric_icon_c mod; + ramdisk_data_c["ramdisk_data.c (c)"] + class ramdisk_data_c mod; + tls_roots_h["tls_roots.h (h)"] + class tls_roots_h mod; + tls_test_roots_h["tls_test_roots.h (h)"] + class tls_test_roots_h mod; + end + mcp_minios_mcp_py -- resolved_imports --> mcp_minios_addons_py + ext_kernel_h["kernel.h"] + class ext_kernel_h ext; + block_c -.->|imports| ext_kernel_h + ext_ide_h["ide.h"] + class ext_ide_h ext; + block_c -.->|imports| ext_ide_h + ext_block_h["block.h"] + class ext_block_h ext; + block_c -.->|imports| ext_block_h + ext_cvm_h["cvm.h"] + class ext_cvm_h ext; + cvm_host_c -.->|imports| ext_cvm_h + ext_os["os"] + class ext_os ext; + gen_minifs_py -.->|imports| ext_os + ide_c -.->|imports| ext_kernel_h + ide_c -.->|imports| ext_ide_h + kernel_c -.->|imports| ext_kernel_h + ext_net_h["net.h"] + class ext_net_h ext; + kernel_c -.->|imports| ext_net_h + ext_tls_h["tls.h"] + class ext_tls_h ext; + kernel_c -.->|imports| ext_tls_h + ext_bootdefs_h["bootdefs.h"] + class ext_bootdefs_h ext; + kernel_c -.->|imports| ext_bootdefs_h + ext_minifs_h["minifs.h"] + class ext_minifs_h ext; + kernel_c -.->|imports| ext_minifs_h + kernel_c -.->|imports| ext_ide_h + kernel_c -.->|imports| ext_block_h + ext_sched_h["sched.h"] + class ext_sched_h ext; + kernel_c -.->|imports| ext_sched_h + ext_vga_fb_h["vga_fb.h"] + class ext_vga_fb_h ext; + kernel_c -.->|imports| ext_vga_fb_h + lz4_kernel_c -.->|imports| ext_kernel_h + ext_lz4_kernel_h["lz4_kernel.h"] + class ext_lz4_kernel_h ext; + lz4_kernel_c -.->|imports| ext_lz4_kernel_h + ext_json["json"] + class ext_json ext; + mcp_mcp_dbg_driver_py -.->|imports| ext_json + mcp_mcp_dbg_driver_py -.->|imports| ext_os + ext_select["select"] + class ext_select ext; + mcp_mcp_dbg_driver_py -.->|imports| ext_select + ext_subprocess["subprocess"] + class ext_subprocess ext; + mcp_mcp_dbg_driver_py -.->|imports| ext_subprocess + ext_sys["sys"] + class ext_sys ext; + mcp_mcp_dbg_driver_py -.->|imports| ext_sys + ext_time["time"] + class ext_time ext; + mcp_mcp_dbg_driver_py -.->|imports| ext_time + mcp_mcp_dogfood_py -.->|imports| ext_json + mcp_mcp_dogfood_py -.->|imports| ext_os + mcp_mcp_dogfood_py -.->|imports| ext_select + mcp_mcp_dogfood_py -.->|imports| ext_subprocess + mcp_mcp_dogfood_py -.->|imports| ext_sys + mcp_mcp_dogfood_py -.->|imports| ext_time + mcp_minios_addons_py -.->|imports| ext_json + mcp_minios_addons_py -.->|imports| ext_os + ext_re["re"] + class ext_re ext; + mcp_minios_addons_py -.->|imports| ext_re + ext_shutil["shutil"] + class ext_shutil ext; + mcp_minios_addons_py -.->|imports| ext_shutil + mcp_minios_addons_py -.->|imports| ext_subprocess + ext_tempfile["tempfile"] + class ext_tempfile ext; + mcp_minios_addons_py -.->|imports| ext_tempfile + mcp_minios_addons_py -.->|imports| ext_time + ext_atexit["atexit"] + class ext_atexit ext; + mcp_minios_mcp_py -.->|imports| ext_atexit + mcp_minios_mcp_py -.->|imports| ext_json + mcp_minios_mcp_py -.->|imports| ext_os + ext_signal["signal"] + class ext_signal ext; + mcp_minios_mcp_py -.->|imports| ext_signal + mcp_minios_mcp_py -.->|imports| ext_sys + mcp_minios_mcp_py -.->|imports| ext_tempfile + ext_threading["threading"] + class ext_threading ext; + mcp_minios_mcp_py -.->|imports| ext_threading + mcp_minios_mcp_py -.->|imports| ext_time + ext_tty["tty"] + class ext_tty ext; + mcp_minios_mcp_py -.->|imports| ext_tty + ext_minios_addons["minios_addons"] + class ext_minios_addons ext; + mcp_minios_mcp_py -.->|imports| ext_minios_addons + mcp_minios_mcp_py -.->|imports| ext_subprocess + ext_importlib_util["importlib.util"] + class ext_importlib_util ext; + mcp_test_minios_mcp_py -.->|imports| ext_importlib_util + mcp_test_minios_mcp_py -.->|imports| ext_json + mcp_test_minios_mcp_py -.->|imports| ext_os + mcp_test_minios_mcp_py -.->|imports| ext_select + mcp_test_minios_mcp_py -.->|imports| ext_subprocess + mcp_test_minios_mcp_py -.->|imports| ext_sys + mcp_test_minios_mcp_py -.->|imports| ext_tempfile + ext_unittest["unittest"] + class ext_unittest ext; + mcp_test_minios_mcp_py -.->|imports| ext_unittest + mcp_test_minios_mcp_py -.->|imports| ext_shutil + mcp_test_minios_mcp_py -.->|imports| ext_importlib_util + mcp_test_minios_mcp_py -.->|imports| ext_importlib_util + mcp_test_minios_mcp_py -.->|imports| ext_importlib_util + mcp_test_minios_mcp_py -.->|imports| ext_shutil + mcp_test_minios_mcp_py -.->|imports| ext_shutil + mcp_test_minios_mcp_py -.->|imports| ext_shutil + minifs_c -.->|imports| ext_kernel_h + minifs_c -.->|imports| ext_minifs_h + minifs_c -.->|imports| ext_block_h + minifs_c -.->|imports| ext_ide_h + minifs_c -.->|imports| ext_lz4_kernel_h + ext_struct["struct"] + class ext_struct ext; + minifs_dump_py -.->|imports| ext_struct + minifs_dump_py -.->|imports| ext_sys + minifs_fsck_py -.->|imports| ext_struct + minifs_fsck_py -.->|imports| ext_sys + mkfs_minifs_py -.->|imports| ext_struct + mkfs_minifs_py -.->|imports| ext_os + mkfs_minifs_py -.->|imports| ext_sys + mkramdisk_py -.->|imports| ext_os + mkramdisk_py -.->|imports| ext_struct + mkramdisk_py -.->|imports| ext_sys + net_c -.->|imports| ext_kernel_h + net_c -.->|imports| ext_net_h + pcspk_c -.->|imports| ext_kernel_h + ext_stdio_h["stdio.h"] + class ext_stdio_h ext; + progs_doomgeneric_am_map_c -.->|imports| ext_stdio_h + ext_deh_main_h["deh_main.h"] + class ext_deh_main_h ext; + progs_doomgeneric_am_map_c -.->|imports| ext_deh_main_h + ext_z_zone_h["z_zone.h"] + class ext_z_zone_h ext; + progs_doomgeneric_am_map_c -.->|imports| ext_z_zone_h + ext_doomkeys_h["doomkeys.h"] + class ext_doomkeys_h ext; + progs_doomgeneric_am_map_c -.->|imports| ext_doomkeys_h + ext_doomdef_h["doomdef.h"] + class ext_doomdef_h ext; + progs_doomgeneric_am_map_c -.->|imports| ext_doomdef_h + ext_st_stuff_h["st_stuff.h"] + class ext_st_stuff_h ext; + progs_doomgeneric_am_map_c -.->|imports| ext_st_stuff_h + ext_p_local_h["p_local.h"] + class ext_p_local_h ext; + progs_doomgeneric_am_map_c -.->|imports| ext_p_local_h + ext_w_wad_h["w_wad.h"] + class ext_w_wad_h ext; + progs_doomgeneric_am_map_c -.->|imports| ext_w_wad_h + ext_m_cheat_h["m_cheat.h"] + class ext_m_cheat_h ext; + progs_doomgeneric_am_map_c -.->|imports| ext_m_cheat_h + ext_m_controls_h["m_controls.h"] + class ext_m_controls_h ext; + progs_doomgeneric_am_map_c -.->|imports| ext_m_controls_h + ext_m_misc_h["m_misc.h"] + class ext_m_misc_h ext; + progs_doomgeneric_am_map_c -.->|imports| ext_m_misc_h + ext_i_system_h["i_system.h"] + class ext_i_system_h ext; + progs_doomgeneric_am_map_c -.->|imports| ext_i_system_h + ext_v_video_h["v_video.h"] + class ext_v_video_h ext; + progs_doomgeneric_am_map_c -.->|imports| ext_v_video_h + ext_doomstat_h["doomstat.h"] + class ext_doomstat_h ext; + progs_doomgeneric_am_map_c -.->|imports| ext_doomstat_h + ext_r_state_h["r_state.h"] + class ext_r_state_h ext; + progs_doomgeneric_am_map_c -.->|imports| ext_r_state_h + ext_dstrings_h["dstrings.h"] + class ext_dstrings_h ext; + progs_doomgeneric_am_map_c -.->|imports| ext_dstrings_h + ext_am_map_h["am_map.h"] + class ext_am_map_h ext; + progs_doomgeneric_am_map_c -.->|imports| ext_am_map_h + ext_d_event_h["d_event.h"] + class ext_d_event_h ext; + progs_doomgeneric_am_map_h -.->|imports| ext_d_event_h + progs_doomgeneric_am_map_h -.->|imports| ext_m_cheat_h + ext_stdlib_h["stdlib.h"] + class ext_stdlib_h ext; + progs_doomgeneric_d_event_c -.->|imports| ext_stdlib_h + progs_doomgeneric_d_event_c -.->|imports| ext_d_event_h + ext_doomtype_h["doomtype.h"] + class ext_doomtype_h ext; + progs_doomgeneric_d_event_h -.->|imports| ext_doomtype_h + ext_info_h["info.h"] + class ext_info_h ext; + progs_doomgeneric_d_items_c -.->|imports| ext_info_h + ext_d_items_h["d_items.h"] + class ext_d_items_h ext; + progs_doomgeneric_d_items_c -.->|imports| ext_d_items_h + progs_doomgeneric_d_items_h -.->|imports| ext_doomdef_h + progs_doomgeneric_d_iwad_c -.->|imports| ext_stdio_h + progs_doomgeneric_d_iwad_c -.->|imports| ext_stdlib_h + ext_ctype_h["ctype.h"] + class ext_ctype_h ext; + progs_doomgeneric_d_iwad_c -.->|imports| ext_ctype_h + ext_string_h["string.h"] + class ext_string_h ext; + progs_doomgeneric_d_iwad_c -.->|imports| ext_string_h + ext_config_h["config.h"] + class ext_config_h ext; + progs_doomgeneric_d_iwad_c -.->|imports| ext_config_h + ext_deh_str_h["deh_str.h"] + class ext_deh_str_h ext; + progs_doomgeneric_d_iwad_c -.->|imports| ext_deh_str_h + progs_doomgeneric_d_iwad_c -.->|imports| ext_doomkeys_h + ext_d_iwad_h["d_iwad.h"] + class ext_d_iwad_h ext; + progs_doomgeneric_d_iwad_c -.->|imports| ext_d_iwad_h + progs_doomgeneric_d_iwad_c -.->|imports| ext_i_system_h + ext_m_argv_h["m_argv.h"] + class ext_m_argv_h ext; + progs_doomgeneric_d_iwad_c -.->|imports| ext_m_argv_h + ext_m_config_h["m_config.h"] + class ext_m_config_h ext; + progs_doomgeneric_d_iwad_c -.->|imports| ext_m_config_h + progs_doomgeneric_d_iwad_c -.->|imports| ext_m_misc_h + progs_doomgeneric_d_iwad_c -.->|imports| ext_w_wad_h + progs_doomgeneric_d_iwad_c -.->|imports| ext_z_zone_h + ext_windows_h["windows.h"] + class ext_windows_h ext; + progs_doomgeneric_d_iwad_c -.->|imports| ext_windows_h + ext_d_mode_h["d_mode.h"] + class ext_d_mode_h ext; + progs_doomgeneric_d_iwad_h -.->|imports| ext_d_mode_h + progs_doomgeneric_d_loop_c -.->|imports| ext_stdlib_h + progs_doomgeneric_d_loop_c -.->|imports| ext_string_h + ext_doomfeatures_h["doomfeatures.h"] + class ext_doomfeatures_h ext; + progs_doomgeneric_d_loop_c -.->|imports| ext_doomfeatures_h + progs_doomgeneric_d_loop_c -.->|imports| ext_d_event_h + ext_d_loop_h["d_loop.h"] + class ext_d_loop_h ext; + progs_doomgeneric_d_loop_c -.->|imports| ext_d_loop_h + ext_d_ticcmd_h["d_ticcmd.h"] + class ext_d_ticcmd_h ext; + progs_doomgeneric_d_loop_c -.->|imports| ext_d_ticcmd_h + progs_doomgeneric_d_loop_c -.->|imports| ext_i_system_h + ext_i_timer_h["i_timer.h"] + class ext_i_timer_h ext; + progs_doomgeneric_d_loop_c -.->|imports| ext_i_timer_h + ext_i_video_h["i_video.h"] + class ext_i_video_h ext; + progs_doomgeneric_d_loop_c -.->|imports| ext_i_video_h + progs_doomgeneric_d_loop_c -.->|imports| ext_m_argv_h + ext_m_fixed_h["m_fixed.h"] + class ext_m_fixed_h ext; + progs_doomgeneric_d_loop_c -.->|imports| ext_m_fixed_h + ext_net_client_h["net_client.h"] + class ext_net_client_h ext; + progs_doomgeneric_d_loop_c -.->|imports| ext_net_client_h + ext_net_gui_h["net_gui.h"] + class ext_net_gui_h ext; + progs_doomgeneric_d_loop_c -.->|imports| ext_net_gui_h + ext_net_io_h["net_io.h"] + class ext_net_io_h ext; + progs_doomgeneric_d_loop_c -.->|imports| ext_net_io_h + ext_net_query_h["net_query.h"] + class ext_net_query_h ext; + progs_doomgeneric_d_loop_c -.->|imports| ext_net_query_h + ext_net_server_h["net_server.h"] + class ext_net_server_h ext; + progs_doomgeneric_d_loop_c -.->|imports| ext_net_server_h + ext_net_sdl_h["net_sdl.h"] + class ext_net_sdl_h ext; + progs_doomgeneric_d_loop_c -.->|imports| ext_net_sdl_h + ext_net_loop_h["net_loop.h"] + class ext_net_loop_h ext; + progs_doomgeneric_d_loop_c -.->|imports| ext_net_loop_h + ext_net_defs_h["net_defs.h"] + class ext_net_defs_h ext; + progs_doomgeneric_d_loop_h -.->|imports| ext_net_defs_h + progs_doomgeneric_d_main_c -.->|imports| ext_ctype_h + progs_doomgeneric_d_main_c -.->|imports| ext_stdio_h + progs_doomgeneric_d_main_c -.->|imports| ext_stdlib_h + progs_doomgeneric_d_main_c -.->|imports| ext_string_h + progs_doomgeneric_d_main_c -.->|imports| ext_config_h + progs_doomgeneric_d_main_c -.->|imports| ext_deh_main_h + progs_doomgeneric_d_main_c -.->|imports| ext_doomdef_h + progs_doomgeneric_d_main_c -.->|imports| ext_doomstat_h + progs_doomgeneric_d_main_c -.->|imports| ext_dstrings_h + progs_doomgeneric_d_main_c -.->|imports| ext_doomfeatures_h + ext_sounds_h["sounds.h"] + class ext_sounds_h ext; + progs_doomgeneric_d_main_c -.->|imports| ext_sounds_h + progs_doomgeneric_d_main_c -.->|imports| ext_d_iwad_h + progs_doomgeneric_d_main_c -.->|imports| ext_z_zone_h + ext_w_main_h["w_main.h"] + class ext_w_main_h ext; + progs_doomgeneric_d_main_c -.->|imports| ext_w_main_h + progs_doomgeneric_d_main_c -.->|imports| ext_w_wad_h + ext_s_sound_h["s_sound.h"] + class ext_s_sound_h ext; + progs_doomgeneric_d_main_c -.->|imports| ext_s_sound_h + progs_doomgeneric_d_main_c -.->|imports| ext_v_video_h + ext_f_finale_h["f_finale.h"] + class ext_f_finale_h ext; + progs_doomgeneric_d_main_c -.->|imports| ext_f_finale_h + ext_f_wipe_h["f_wipe.h"] + class ext_f_wipe_h ext; + progs_doomgeneric_d_main_c -.->|imports| ext_f_wipe_h + progs_doomgeneric_d_main_c -.->|imports| ext_m_argv_h + progs_doomgeneric_d_main_c -.->|imports| ext_m_config_h + progs_doomgeneric_d_main_c -.->|imports| ext_m_controls_h + progs_doomgeneric_d_main_c -.->|imports| ext_m_misc_h + ext_m_menu_h["m_menu.h"] + class ext_m_menu_h ext; + progs_doomgeneric_d_main_c -.->|imports| ext_m_menu_h + ext_p_saveg_h["p_saveg.h"] + class ext_p_saveg_h ext; + progs_doomgeneric_d_main_c -.->|imports| ext_p_saveg_h + ext_i_endoom_h["i_endoom.h"] + class ext_i_endoom_h ext; + progs_doomgeneric_d_main_c -.->|imports| ext_i_endoom_h + ext_i_joystick_h["i_joystick.h"] + class ext_i_joystick_h ext; + progs_doomgeneric_d_main_c -.->|imports| ext_i_joystick_h + progs_doomgeneric_d_main_c -.->|imports| ext_i_system_h + progs_doomgeneric_d_main_c -.->|imports| ext_i_timer_h + progs_doomgeneric_d_main_c -.->|imports| ext_i_video_h + ext_g_game_h["g_game.h"] + class ext_g_game_h ext; + progs_doomgeneric_d_main_c -.->|imports| ext_g_game_h + ext_hu_stuff_h["hu_stuff.h"] + class ext_hu_stuff_h ext; + progs_doomgeneric_d_main_c -.->|imports| ext_hu_stuff_h + ext_wi_stuff_h["wi_stuff.h"] + class ext_wi_stuff_h ext; + progs_doomgeneric_d_main_c -.->|imports| ext_wi_stuff_h + progs_doomgeneric_d_main_c -.->|imports| ext_st_stuff_h + progs_doomgeneric_d_main_c -.->|imports| ext_am_map_h + progs_doomgeneric_d_main_c -.->|imports| ext_net_client_h + ext_net_dedicated_h["net_dedicated.h"] + class ext_net_dedicated_h ext; + progs_doomgeneric_d_main_c -.->|imports| ext_net_dedicated_h + progs_doomgeneric_d_main_c -.->|imports| ext_net_query_h + ext_p_setup_h["p_setup.h"] + class ext_p_setup_h ext; + progs_doomgeneric_d_main_c -.->|imports| ext_p_setup_h + ext_r_local_h["r_local.h"] + class ext_r_local_h ext; + progs_doomgeneric_d_main_c -.->|imports| ext_r_local_h + ext_statdump_h["statdump.h"] + class ext_statdump_h ext; + progs_doomgeneric_d_main_c -.->|imports| ext_statdump_h + ext_d_main_h["d_main.h"] + class ext_d_main_h ext; + progs_doomgeneric_d_main_c -.->|imports| ext_d_main_h + progs_doomgeneric_d_main_h -.->|imports| ext_doomdef_h + progs_doomgeneric_d_mode_c -.->|imports| ext_doomtype_h + progs_doomgeneric_d_mode_c -.->|imports| ext_d_mode_h + progs_doomgeneric_d_mode_h -.->|imports| ext_doomtype_h + progs_doomgeneric_d_net_c -.->|imports| ext_stdlib_h + progs_doomgeneric_d_net_c -.->|imports| ext_doomfeatures_h + progs_doomgeneric_d_net_c -.->|imports| ext_d_main_h + progs_doomgeneric_d_net_c -.->|imports| ext_m_argv_h + progs_doomgeneric_d_net_c -.->|imports| ext_m_menu_h + progs_doomgeneric_d_net_c -.->|imports| ext_m_misc_h + progs_doomgeneric_d_net_c -.->|imports| ext_i_system_h + progs_doomgeneric_d_net_c -.->|imports| ext_i_timer_h + progs_doomgeneric_d_net_c -.->|imports| ext_i_video_h + progs_doomgeneric_d_net_c -.->|imports| ext_g_game_h + progs_doomgeneric_d_net_c -.->|imports| ext_doomdef_h + progs_doomgeneric_d_net_c -.->|imports| ext_doomstat_h + ext_w_checksum_h["w_checksum.h"] + class ext_w_checksum_h ext; + progs_doomgeneric_d_net_c -.->|imports| ext_w_checksum_h + progs_doomgeneric_d_net_c -.->|imports| ext_w_wad_h + progs_doomgeneric_d_net_c -.->|imports| ext_deh_main_h + progs_doomgeneric_d_net_c -.->|imports| ext_d_loop_h + progs_doomgeneric_d_player_h -.->|imports| ext_d_items_h + ext_p_pspr_h["p_pspr.h"] + class ext_p_pspr_h ext; + progs_doomgeneric_d_player_h -.->|imports| ext_p_pspr_h + ext_p_mobj_h["p_mobj.h"] + class ext_p_mobj_h ext; + progs_doomgeneric_d_player_h -.->|imports| ext_p_mobj_h + progs_doomgeneric_d_player_h -.->|imports| ext_d_ticcmd_h + progs_doomgeneric_d_player_h -.->|imports| ext_net_defs_h + progs_doomgeneric_d_textur_h -.->|imports| ext_doomtype_h + progs_doomgeneric_d_ticcmd_h -.->|imports| ext_doomtype_h + progs_doomgeneric_deh_main_h -.->|imports| ext_doomtype_h + progs_doomgeneric_deh_main_h -.->|imports| ext_doomfeatures_h + progs_doomgeneric_deh_main_h -.->|imports| ext_deh_str_h + ext_sha1_h["sha1.h"] + class ext_sha1_h ext; + progs_doomgeneric_deh_main_h -.->|imports| ext_sha1_h + progs_doomgeneric_deh_misc_h -.->|imports| ext_doomfeatures_h + progs_doomgeneric_deh_str_h -.->|imports| ext_stdio_h + progs_doomgeneric_deh_str_h -.->|imports| ext_doomfeatures_h + progs_doomgeneric_doomdata_h -.->|imports| ext_doomtype_h + progs_doomgeneric_doomdata_h -.->|imports| ext_doomdef_h + progs_doomgeneric_doomdef_c -.->|imports| ext_doomdef_h + progs_doomgeneric_doomdef_h -.->|imports| ext_stdio_h + progs_doomgeneric_doomdef_h -.->|imports| ext_string_h + progs_doomgeneric_doomdef_h -.->|imports| ext_doomtype_h + progs_doomgeneric_doomdef_h -.->|imports| ext_i_timer_h + progs_doomgeneric_doomdef_h -.->|imports| ext_d_mode_h + ext_doomgeneric_h["doomgeneric.h"] + class ext_doomgeneric_h ext; + progs_doomgeneric_doomgeneric_c -.->|imports| ext_doomgeneric_h + progs_doomgeneric_doomgeneric_h -.->|imports| ext_stdlib_h + ext_stdint_h["stdint.h"] + class ext_stdint_h ext; + progs_doomgeneric_doomgeneric_h -.->|imports| ext_stdint_h + progs_doomgeneric_doomgeneric_minios_c -.->|imports| ext_doomgeneric_h + progs_doomgeneric_doomgeneric_minios_c -.->|imports| ext_doomkeys_h + progs_doomgeneric_doomgeneric_minios_c -.->|imports| ext_stdint_h + progs_doomgeneric_doomgeneric_minios_c -.->|imports| ext_string_h + progs_doomgeneric_doomgeneric_sdl_c -.->|imports| ext_doomkeys_h + progs_doomgeneric_doomgeneric_sdl_c -.->|imports| ext_m_argv_h + progs_doomgeneric_doomgeneric_sdl_c -.->|imports| ext_doomgeneric_h + progs_doomgeneric_doomgeneric_sdl_c -.->|imports| ext_stdio_h + ext_unistd_h["unistd.h"] + class ext_unistd_h ext; + progs_doomgeneric_doomgeneric_sdl_c -.->|imports| ext_unistd_h + ext_stdbool_h["stdbool.h"] + class ext_stdbool_h ext; + progs_doomgeneric_doomgeneric_sdl_c -.->|imports| ext_stdbool_h + ext_SDL_h["SDL.h"] + class ext_SDL_h ext; + progs_doomgeneric_doomgeneric_sdl_c -.->|imports| ext_SDL_h + progs_doomgeneric_doomgeneric_soso_c -.->|imports| ext_doomkeys_h + progs_doomgeneric_doomgeneric_soso_c -.->|imports| ext_m_argv_h + progs_doomgeneric_doomgeneric_soso_c -.->|imports| ext_doomgeneric_h + progs_doomgeneric_doomgeneric_soso_c -.->|imports| ext_stdio_h + ext_fcntl_h["fcntl.h"] + class ext_fcntl_h ext; + progs_doomgeneric_doomgeneric_soso_c -.->|imports| ext_fcntl_h + progs_doomgeneric_doomgeneric_soso_c -.->|imports| ext_unistd_h + progs_doomgeneric_doomgeneric_soso_c -.->|imports| ext_string_h + ext_sys_ioctl_h["ioctl.h"] + class ext_sys_ioctl_h ext; + progs_doomgeneric_doomgeneric_soso_c -.->|imports| ext_sys_ioctl_h + ext_sys_mman_h["mman.h"] + class ext_sys_mman_h ext; + progs_doomgeneric_doomgeneric_soso_c -.->|imports| ext_sys_mman_h + ext_termios_h["termios.h"] + class ext_termios_h ext; + progs_doomgeneric_doomgeneric_soso_c -.->|imports| ext_termios_h + ext_soso_h["soso.h"] + class ext_soso_h ext; + progs_doomgeneric_doomgeneric_soso_c -.->|imports| ext_soso_h + progs_doomgeneric_doomgeneric_sosox_c -.->|imports| ext_doomkeys_h + progs_doomgeneric_doomgeneric_sosox_c -.->|imports| ext_m_argv_h + progs_doomgeneric_doomgeneric_sosox_c -.->|imports| ext_doomgeneric_h + progs_doomgeneric_doomgeneric_sosox_c -.->|imports| ext_stdio_h + progs_doomgeneric_doomgeneric_sosox_c -.->|imports| ext_fcntl_h + progs_doomgeneric_doomgeneric_sosox_c -.->|imports| ext_unistd_h + progs_doomgeneric_doomgeneric_sosox_c -.->|imports| ext_string_h + progs_doomgeneric_doomgeneric_sosox_c -.->|imports| ext_sys_ioctl_h + progs_doomgeneric_doomgeneric_sosox_c -.->|imports| ext_termios_h + progs_doomgeneric_doomgeneric_sosox_c -.->|imports| ext_soso_h + ext_nano_X_h["nano-X.h"] + class ext_nano_X_h ext; + progs_doomgeneric_doomgeneric_sosox_c -.->|imports| ext_nano_X_h + progs_doomgeneric_doomgeneric_win_c -.->|imports| ext_doomkeys_h + progs_doomgeneric_doomgeneric_win_c -.->|imports| ext_doomgeneric_h + progs_doomgeneric_doomgeneric_win_c -.->|imports| ext_stdio_h + ext_Windows_h["Windows.h"] + class ext_Windows_h ext; + progs_doomgeneric_doomgeneric_win_c -.->|imports| ext_Windows_h + progs_doomgeneric_doomgeneric_xlib_c -.->|imports| ext_doomkeys_h + progs_doomgeneric_doomgeneric_xlib_c -.->|imports| ext_doomgeneric_h + progs_doomgeneric_doomgeneric_xlib_c -.->|imports| ext_ctype_h + progs_doomgeneric_doomgeneric_xlib_c -.->|imports| ext_stdio_h + progs_doomgeneric_doomgeneric_xlib_c -.->|imports| ext_string_h + progs_doomgeneric_doomgeneric_xlib_c -.->|imports| ext_unistd_h + ext_sys_time_h["time.h"] + class ext_sys_time_h ext; + progs_doomgeneric_doomgeneric_xlib_c -.->|imports| ext_sys_time_h + ext_X11_Xlib_h["Xlib.h"] + class ext_X11_Xlib_h ext; + progs_doomgeneric_doomgeneric_xlib_c -.->|imports| ext_X11_Xlib_h + ext_X11_Xutil_h["Xutil.h"] + class ext_X11_Xutil_h ext; + progs_doomgeneric_doomgeneric_xlib_c -.->|imports| ext_X11_Xutil_h + ext_X11_Xatom_h["Xatom.h"] + class ext_X11_Xatom_h ext; + progs_doomgeneric_doomgeneric_xlib_c -.->|imports| ext_X11_Xatom_h + progs_doomgeneric_doomstat_c -.->|imports| ext_stdio_h + progs_doomgeneric_doomstat_c -.->|imports| ext_doomstat_h + ext_doomdata_h["doomdata.h"] + class ext_doomdata_h ext; + progs_doomgeneric_doomstat_h -.->|imports| ext_doomdata_h + progs_doomgeneric_doomstat_h -.->|imports| ext_d_loop_h + ext_d_player_h["d_player.h"] + class ext_d_player_h ext; + progs_doomgeneric_doomstat_h -.->|imports| ext_d_player_h + progs_doomgeneric_doomstat_h -.->|imports| ext_d_mode_h + progs_doomgeneric_doomstat_h -.->|imports| ext_net_defs_h + ext_strings_h["strings.h"] + class ext_strings_h ext; + progs_doomgeneric_doomtype_h -.->|imports| ext_strings_h + ext_inttypes_h["inttypes.h"] + class ext_inttypes_h ext; + progs_doomgeneric_doomtype_h -.->|imports| ext_inttypes_h + ext_limits_h["limits.h"] + class ext_limits_h ext; + progs_doomgeneric_doomtype_h -.->|imports| ext_limits_h + progs_doomgeneric_dstrings_c -.->|imports| ext_dstrings_h + ext_d_englsh_h["d_englsh.h"] + class ext_d_englsh_h ext; + progs_doomgeneric_dstrings_h -.->|imports| ext_d_englsh_h + progs_doomgeneric_dummy_c -.->|imports| ext_doomtype_h + progs_doomgeneric_f_finale_c -.->|imports| ext_stdio_h + progs_doomgeneric_f_finale_c -.->|imports| ext_ctype_h + progs_doomgeneric_f_finale_c -.->|imports| ext_deh_main_h + progs_doomgeneric_f_finale_c -.->|imports| ext_i_system_h + ext_i_swap_h["i_swap.h"] + class ext_i_swap_h ext; + progs_doomgeneric_f_finale_c -.->|imports| ext_i_swap_h + progs_doomgeneric_f_finale_c -.->|imports| ext_z_zone_h + progs_doomgeneric_f_finale_c -.->|imports| ext_v_video_h + progs_doomgeneric_f_finale_c -.->|imports| ext_w_wad_h + progs_doomgeneric_f_finale_c -.->|imports| ext_s_sound_h + progs_doomgeneric_f_finale_c -.->|imports| ext_d_main_h + progs_doomgeneric_f_finale_c -.->|imports| ext_dstrings_h + progs_doomgeneric_f_finale_c -.->|imports| ext_sounds_h + progs_doomgeneric_f_finale_c -.->|imports| ext_doomstat_h + progs_doomgeneric_f_finale_c -.->|imports| ext_r_state_h + progs_doomgeneric_f_finale_c -.->|imports| ext_hu_stuff_h + progs_doomgeneric_f_finale_h -.->|imports| ext_doomtype_h + progs_doomgeneric_f_finale_h -.->|imports| ext_d_event_h + progs_doomgeneric_f_wipe_c -.->|imports| ext_string_h + progs_doomgeneric_f_wipe_c -.->|imports| ext_z_zone_h + progs_doomgeneric_f_wipe_c -.->|imports| ext_i_video_h + progs_doomgeneric_f_wipe_c -.->|imports| ext_v_video_h + ext_m_random_h["m_random.h"] + class ext_m_random_h ext; + progs_doomgeneric_f_wipe_c -.->|imports| ext_m_random_h + progs_doomgeneric_f_wipe_c -.->|imports| ext_doomtype_h + progs_doomgeneric_f_wipe_c -.->|imports| ext_f_wipe_h + progs_doomgeneric_g_game_c -.->|imports| ext_string_h + progs_doomgeneric_g_game_c -.->|imports| ext_stdlib_h + ext_math_h["math.h"] + class ext_math_h ext; + progs_doomgeneric_g_game_c -.->|imports| ext_math_h + progs_doomgeneric_g_game_c -.->|imports| ext_doomdef_h + progs_doomgeneric_g_game_c -.->|imports| ext_doomkeys_h + progs_doomgeneric_g_game_c -.->|imports| ext_doomstat_h + progs_doomgeneric_g_game_c -.->|imports| ext_deh_main_h + ext_deh_misc_h["deh_misc.h"] + class ext_deh_misc_h ext; + progs_doomgeneric_g_game_c -.->|imports| ext_deh_misc_h + progs_doomgeneric_g_game_c -.->|imports| ext_z_zone_h + progs_doomgeneric_g_game_c -.->|imports| ext_f_finale_h + progs_doomgeneric_g_game_c -.->|imports| ext_m_argv_h + progs_doomgeneric_g_game_c -.->|imports| ext_m_controls_h + progs_doomgeneric_g_game_c -.->|imports| ext_m_misc_h + progs_doomgeneric_g_game_c -.->|imports| ext_m_menu_h + progs_doomgeneric_g_game_c -.->|imports| ext_m_random_h + progs_doomgeneric_g_game_c -.->|imports| ext_i_system_h + progs_doomgeneric_g_game_c -.->|imports| ext_i_timer_h + progs_doomgeneric_g_game_c -.->|imports| ext_i_video_h + progs_doomgeneric_g_game_c -.->|imports| ext_p_setup_h + progs_doomgeneric_g_game_c -.->|imports| ext_p_saveg_h + ext_p_tick_h["p_tick.h"] + class ext_p_tick_h ext; + progs_doomgeneric_g_game_c -.->|imports| ext_p_tick_h + progs_doomgeneric_g_game_c -.->|imports| ext_d_main_h + progs_doomgeneric_g_game_c -.->|imports| ext_wi_stuff_h + progs_doomgeneric_g_game_c -.->|imports| ext_hu_stuff_h + progs_doomgeneric_g_game_c -.->|imports| ext_st_stuff_h + progs_doomgeneric_g_game_c -.->|imports| ext_am_map_h + progs_doomgeneric_g_game_c -.->|imports| ext_statdump_h + progs_doomgeneric_g_game_c -.->|imports| ext_v_video_h + progs_doomgeneric_g_game_c -.->|imports| ext_w_wad_h + progs_doomgeneric_g_game_c -.->|imports| ext_p_local_h + progs_doomgeneric_g_game_c -.->|imports| ext_s_sound_h + progs_doomgeneric_g_game_c -.->|imports| ext_dstrings_h + progs_doomgeneric_g_game_c -.->|imports| ext_sounds_h + ext_r_data_h["r_data.h"] + class ext_r_data_h ext; + progs_doomgeneric_g_game_c -.->|imports| ext_r_data_h + ext_r_sky_h["r_sky.h"] + class ext_r_sky_h ext; + progs_doomgeneric_g_game_c -.->|imports| ext_r_sky_h + progs_doomgeneric_g_game_c -.->|imports| ext_g_game_h + progs_doomgeneric_g_game_h -.->|imports| ext_doomdef_h + progs_doomgeneric_g_game_h -.->|imports| ext_d_event_h + progs_doomgeneric_g_game_h -.->|imports| ext_d_ticcmd_h + progs_doomgeneric_gusconf_c -.->|imports| ext_stdio_h + progs_doomgeneric_gusconf_c -.->|imports| ext_stdlib_h + progs_doomgeneric_gusconf_c -.->|imports| ext_string_h + progs_doomgeneric_gusconf_c -.->|imports| ext_ctype_h + progs_doomgeneric_gusconf_c -.->|imports| ext_w_wad_h + progs_doomgeneric_gusconf_c -.->|imports| ext_z_zone_h + progs_doomgeneric_gusconf_h -.->|imports| ext_doomtype_h + progs_doomgeneric_hu_lib_c -.->|imports| ext_ctype_h + progs_doomgeneric_hu_lib_c -.->|imports| ext_doomdef_h + progs_doomgeneric_hu_lib_c -.->|imports| ext_doomkeys_h + progs_doomgeneric_hu_lib_c -.->|imports| ext_v_video_h + progs_doomgeneric_hu_lib_c -.->|imports| ext_i_swap_h + ext_hu_lib_h["hu_lib.h"] + class ext_hu_lib_h ext; + progs_doomgeneric_hu_lib_c -.->|imports| ext_hu_lib_h + progs_doomgeneric_hu_lib_c -.->|imports| ext_r_local_h + ext_r_draw_h["r_draw.h"] + class ext_r_draw_h ext; + progs_doomgeneric_hu_lib_c -.->|imports| ext_r_draw_h + ext_r_defs_h["r_defs.h"] + class ext_r_defs_h ext; + progs_doomgeneric_hu_lib_h -.->|imports| ext_r_defs_h + progs_doomgeneric_hu_stuff_c -.->|imports| ext_ctype_h + progs_doomgeneric_hu_stuff_c -.->|imports| ext_doomdef_h + progs_doomgeneric_hu_stuff_c -.->|imports| ext_doomkeys_h + progs_doomgeneric_hu_stuff_c -.->|imports| ext_z_zone_h + progs_doomgeneric_hu_stuff_c -.->|imports| ext_deh_main_h + progs_doomgeneric_hu_stuff_c -.->|imports| ext_i_swap_h + progs_doomgeneric_hu_stuff_c -.->|imports| ext_i_video_h + progs_doomgeneric_hu_stuff_c -.->|imports| ext_hu_stuff_h + progs_doomgeneric_hu_stuff_c -.->|imports| ext_hu_lib_h + progs_doomgeneric_hu_stuff_c -.->|imports| ext_m_controls_h + progs_doomgeneric_hu_stuff_c -.->|imports| ext_m_misc_h + progs_doomgeneric_hu_stuff_c -.->|imports| ext_w_wad_h + progs_doomgeneric_hu_stuff_c -.->|imports| ext_s_sound_h + progs_doomgeneric_hu_stuff_c -.->|imports| ext_doomstat_h + progs_doomgeneric_hu_stuff_c -.->|imports| ext_dstrings_h + progs_doomgeneric_hu_stuff_c -.->|imports| ext_sounds_h + progs_doomgeneric_hu_stuff_h -.->|imports| ext_d_event_h + progs_doomgeneric_i_cdmus_c -.->|imports| ext_stdio_h + progs_doomgeneric_i_cdmus_c -.->|imports| ext_SDL_h + ext_SDL_cdrom_h["SDL_cdrom.h"] + class ext_SDL_cdrom_h ext; + progs_doomgeneric_i_cdmus_c -.->|imports| ext_SDL_cdrom_h + progs_doomgeneric_i_cdmus_c -.->|imports| ext_doomtype_h + ext_i_cdmus_h["i_cdmus.h"] + class ext_i_cdmus_h ext; + progs_doomgeneric_i_cdmus_c -.->|imports| ext_i_cdmus_h + progs_doomgeneric_i_endoom_c -.->|imports| ext_stdio_h + progs_doomgeneric_i_endoom_c -.->|imports| ext_string_h + progs_doomgeneric_i_endoom_c -.->|imports| ext_config_h + progs_doomgeneric_i_endoom_c -.->|imports| ext_doomtype_h + progs_doomgeneric_i_endoom_c -.->|imports| ext_i_video_h + ext_txt_main_h["txt_main.h"] + class ext_txt_main_h ext; + progs_doomgeneric_i_endoom_c -.->|imports| ext_txt_main_h + progs_doomgeneric_i_input_c -.->|imports| ext_stdlib_h + progs_doomgeneric_i_input_c -.->|imports| ext_ctype_h + progs_doomgeneric_i_input_c -.->|imports| ext_math_h + progs_doomgeneric_i_input_c -.->|imports| ext_string_h + progs_doomgeneric_i_input_c -.->|imports| ext_fcntl_h + progs_doomgeneric_i_input_c -.->|imports| ext_stdio_h + progs_doomgeneric_i_input_c -.->|imports| ext_config_h + progs_doomgeneric_i_input_c -.->|imports| ext_deh_str_h + progs_doomgeneric_i_input_c -.->|imports| ext_doomtype_h + progs_doomgeneric_i_input_c -.->|imports| ext_doomkeys_h + progs_doomgeneric_i_input_c -.->|imports| ext_i_joystick_h + progs_doomgeneric_i_input_c -.->|imports| ext_i_system_h + progs_doomgeneric_i_input_c -.->|imports| ext_i_swap_h + progs_doomgeneric_i_input_c -.->|imports| ext_i_timer_h + progs_doomgeneric_i_input_c -.->|imports| ext_i_video_h + ext_i_scale_h["i_scale.h"] + class ext_i_scale_h ext; + progs_doomgeneric_i_input_c -.->|imports| ext_i_scale_h + progs_doomgeneric_i_input_c -.->|imports| ext_m_argv_h + progs_doomgeneric_i_input_c -.->|imports| ext_m_config_h + progs_doomgeneric_i_input_c -.->|imports| ext_m_misc_h + ext_tables_h["tables.h"] + class ext_tables_h ext; + progs_doomgeneric_i_input_c -.->|imports| ext_tables_h + progs_doomgeneric_i_input_c -.->|imports| ext_v_video_h + progs_doomgeneric_i_input_c -.->|imports| ext_w_wad_h + progs_doomgeneric_i_input_c -.->|imports| ext_z_zone_h + progs_doomgeneric_i_input_c -.->|imports| ext_doomgeneric_h + progs_doomgeneric_i_joystick_c -.->|imports| ext_SDL_h + ext_SDL_joystick_h["SDL_joystick.h"] + class ext_SDL_joystick_h ext; + progs_doomgeneric_i_joystick_c -.->|imports| ext_SDL_joystick_h + progs_doomgeneric_i_joystick_c -.->|imports| ext_stdlib_h + progs_doomgeneric_i_joystick_c -.->|imports| ext_stdio_h + progs_doomgeneric_i_joystick_c -.->|imports| ext_string_h + progs_doomgeneric_i_joystick_c -.->|imports| ext_doomtype_h + progs_doomgeneric_i_joystick_c -.->|imports| ext_d_event_h + progs_doomgeneric_i_joystick_c -.->|imports| ext_i_joystick_h + progs_doomgeneric_i_joystick_c -.->|imports| ext_i_system_h + progs_doomgeneric_i_joystick_c -.->|imports| ext_m_config_h + progs_doomgeneric_i_joystick_c -.->|imports| ext_m_misc_h + progs_doomgeneric_i_main_c -.->|imports| ext_stdio_h + progs_doomgeneric_i_main_c -.->|imports| ext_m_argv_h + progs_doomgeneric_i_minios_sound_c -.->|imports| ext_stdio_h + progs_doomgeneric_i_minios_sound_c -.->|imports| ext_stdlib_h + progs_doomgeneric_i_minios_sound_c -.->|imports| ext_string_h + progs_doomgeneric_i_minios_sound_c -.->|imports| ext_doomtype_h + progs_doomgeneric_i_minios_sound_c -.->|imports| ext_doomfeatures_h + ext_i_sound_h["i_sound.h"] + class ext_i_sound_h ext; + progs_doomgeneric_i_minios_sound_c -.->|imports| ext_i_sound_h + progs_doomgeneric_i_minios_sound_c -.->|imports| ext_w_wad_h + progs_doomgeneric_i_minios_sound_c -.->|imports| ext_z_zone_h + progs_doomgeneric_i_minios_sound_c -.->|imports| ext_doomgeneric_h + progs_doomgeneric_i_scale_c -.->|imports| ext_stdio_h + progs_doomgeneric_i_scale_c -.->|imports| ext_stdlib_h + progs_doomgeneric_i_scale_c -.->|imports| ext_string_h + progs_doomgeneric_i_scale_c -.->|imports| ext_doomtype_h + progs_doomgeneric_i_scale_c -.->|imports| ext_i_video_h + progs_doomgeneric_i_scale_c -.->|imports| ext_m_argv_h + progs_doomgeneric_i_scale_c -.->|imports| ext_z_zone_h + progs_doomgeneric_i_scale_h -.->|imports| ext_doomtype_h + progs_doomgeneric_i_sound_c -.->|imports| ext_stdio_h + progs_doomgeneric_i_sound_c -.->|imports| ext_stdlib_h + ext_SDL_mixer_h["SDL_mixer.h"] + class ext_SDL_mixer_h ext; + progs_doomgeneric_i_sound_c -.->|imports| ext_SDL_mixer_h + progs_doomgeneric_i_sound_c -.->|imports| ext_config_h + progs_doomgeneric_i_sound_c -.->|imports| ext_doomfeatures_h + progs_doomgeneric_i_sound_c -.->|imports| ext_doomtype_h + ext_gusconf_h["gusconf.h"] + class ext_gusconf_h ext; + progs_doomgeneric_i_sound_c -.->|imports| ext_gusconf_h + progs_doomgeneric_i_sound_c -.->|imports| ext_i_sound_h + progs_doomgeneric_i_sound_c -.->|imports| ext_i_video_h + progs_doomgeneric_i_sound_c -.->|imports| ext_m_argv_h + progs_doomgeneric_i_sound_c -.->|imports| ext_m_config_h + progs_doomgeneric_i_sound_h -.->|imports| ext_doomtype_h + ext_SDL_endian_h["SDL_endian.h"] + class ext_SDL_endian_h ext; + progs_doomgeneric_i_swap_h -.->|imports| ext_SDL_endian_h + progs_doomgeneric_i_system_c -.->|imports| ext_stdlib_h + progs_doomgeneric_i_system_c -.->|imports| ext_stdio_h + progs_doomgeneric_i_system_c -.->|imports| ext_string_h + ext_stdarg_h["stdarg.h"] + class ext_stdarg_h ext; + progs_doomgeneric_i_system_c -.->|imports| ext_stdarg_h + progs_doomgeneric_i_system_c -.->|imports| ext_windows_h + progs_doomgeneric_i_system_c -.->|imports| ext_unistd_h + progs_doomgeneric_i_system_c -.->|imports| ext_SDL_h + progs_doomgeneric_i_system_c -.->|imports| ext_config_h + progs_doomgeneric_i_system_c -.->|imports| ext_deh_str_h + progs_doomgeneric_i_system_c -.->|imports| ext_doomtype_h + progs_doomgeneric_i_system_c -.->|imports| ext_m_argv_h + progs_doomgeneric_i_system_c -.->|imports| ext_m_config_h + progs_doomgeneric_i_system_c -.->|imports| ext_m_misc_h + progs_doomgeneric_i_system_c -.->|imports| ext_i_joystick_h + progs_doomgeneric_i_system_c -.->|imports| ext_i_sound_h + progs_doomgeneric_i_system_c -.->|imports| ext_i_timer_h + progs_doomgeneric_i_system_c -.->|imports| ext_i_video_h + progs_doomgeneric_i_system_c -.->|imports| ext_i_system_h + progs_doomgeneric_i_system_c -.->|imports| ext_w_wad_h + progs_doomgeneric_i_system_c -.->|imports| ext_z_zone_h + ext_CoreFoundation_CFUserNotification_h["CFUserNotification.h"] + class ext_CoreFoundation_CFUserNotification_h ext; + progs_doomgeneric_i_system_c -.->|imports| ext_CoreFoundation_CFUserNotification_h + progs_doomgeneric_i_system_h -.->|imports| ext_d_ticcmd_h + progs_doomgeneric_i_system_h -.->|imports| ext_d_event_h + progs_doomgeneric_i_timer_c -.->|imports| ext_i_timer_h + progs_doomgeneric_i_timer_c -.->|imports| ext_doomtype_h + progs_doomgeneric_i_timer_c -.->|imports| ext_doomgeneric_h + progs_doomgeneric_i_timer_c -.->|imports| ext_stdarg_h + progs_doomgeneric_i_video_c -.->|imports| ext_config_h + progs_doomgeneric_i_video_c -.->|imports| ext_v_video_h + progs_doomgeneric_i_video_c -.->|imports| ext_m_argv_h + progs_doomgeneric_i_video_c -.->|imports| ext_d_event_h + progs_doomgeneric_i_video_c -.->|imports| ext_d_main_h + progs_doomgeneric_i_video_c -.->|imports| ext_i_video_h + progs_doomgeneric_i_video_c -.->|imports| ext_z_zone_h + progs_doomgeneric_i_video_c -.->|imports| ext_tables_h + progs_doomgeneric_i_video_c -.->|imports| ext_doomkeys_h + progs_doomgeneric_i_video_c -.->|imports| ext_doomgeneric_h + progs_doomgeneric_i_video_c -.->|imports| ext_stdbool_h + progs_doomgeneric_i_video_c -.->|imports| ext_stdlib_h + progs_doomgeneric_i_video_c -.->|imports| ext_fcntl_h + progs_doomgeneric_i_video_c -.->|imports| ext_stdarg_h + ext_sys_types_h["types.h"] + class ext_sys_types_h ext; + progs_doomgeneric_i_video_c -.->|imports| ext_sys_types_h + progs_doomgeneric_i_video_h -.->|imports| ext_doomtype_h + progs_doomgeneric_info_c -.->|imports| ext_stdio_h + progs_doomgeneric_info_c -.->|imports| ext_stdlib_h + progs_doomgeneric_info_c -.->|imports| ext_sounds_h + progs_doomgeneric_info_c -.->|imports| ext_m_fixed_h + progs_doomgeneric_info_c -.->|imports| ext_info_h + progs_doomgeneric_info_c -.->|imports| ext_p_mobj_h + ext_d_think_h["d_think.h"] + class ext_d_think_h ext; + progs_doomgeneric_info_h -.->|imports| ext_d_think_h + progs_doomgeneric_m_argv_c -.->|imports| ext_ctype_h + progs_doomgeneric_m_argv_c -.->|imports| ext_stdio_h + progs_doomgeneric_m_argv_c -.->|imports| ext_stdlib_h + progs_doomgeneric_m_argv_c -.->|imports| ext_string_h + progs_doomgeneric_m_argv_c -.->|imports| ext_doomtype_h + progs_doomgeneric_m_argv_c -.->|imports| ext_i_system_h + progs_doomgeneric_m_argv_c -.->|imports| ext_m_misc_h + progs_doomgeneric_m_argv_c -.->|imports| ext_m_argv_h + progs_doomgeneric_m_argv_h -.->|imports| ext_doomtype_h + ext_m_bbox_h["m_bbox.h"] + class ext_m_bbox_h ext; + progs_doomgeneric_m_bbox_c -.->|imports| ext_m_bbox_h + progs_doomgeneric_m_bbox_h -.->|imports| ext_limits_h + progs_doomgeneric_m_bbox_h -.->|imports| ext_m_fixed_h + progs_doomgeneric_m_cheat_c -.->|imports| ext_string_h + progs_doomgeneric_m_cheat_c -.->|imports| ext_doomtype_h + progs_doomgeneric_m_cheat_c -.->|imports| ext_m_cheat_h + progs_doomgeneric_m_config_c -.->|imports| ext_stdio_h + progs_doomgeneric_m_config_c -.->|imports| ext_stdlib_h + progs_doomgeneric_m_config_c -.->|imports| ext_string_h + progs_doomgeneric_m_config_c -.->|imports| ext_ctype_h + ext_errno_h["errno.h"] + class ext_errno_h ext; + progs_doomgeneric_m_config_c -.->|imports| ext_errno_h + progs_doomgeneric_m_config_c -.->|imports| ext_config_h + progs_doomgeneric_m_config_c -.->|imports| ext_doomtype_h + progs_doomgeneric_m_config_c -.->|imports| ext_doomkeys_h + progs_doomgeneric_m_config_c -.->|imports| ext_doomfeatures_h + progs_doomgeneric_m_config_c -.->|imports| ext_i_system_h + progs_doomgeneric_m_config_c -.->|imports| ext_m_argv_h + progs_doomgeneric_m_config_c -.->|imports| ext_m_misc_h + progs_doomgeneric_m_config_c -.->|imports| ext_z_zone_h + progs_doomgeneric_m_config_h -.->|imports| ext_doomtype_h + progs_doomgeneric_m_controls_c -.->|imports| ext_stdio_h + progs_doomgeneric_m_controls_c -.->|imports| ext_doomtype_h + progs_doomgeneric_m_controls_c -.->|imports| ext_doomkeys_h + progs_doomgeneric_m_controls_c -.->|imports| ext_m_config_h + progs_doomgeneric_m_controls_c -.->|imports| ext_m_misc_h + progs_doomgeneric_m_fixed_c -.->|imports| ext_stdlib_h + progs_doomgeneric_m_fixed_c -.->|imports| ext_doomtype_h + progs_doomgeneric_m_fixed_c -.->|imports| ext_i_system_h + progs_doomgeneric_m_fixed_c -.->|imports| ext_m_fixed_h + progs_doomgeneric_m_menu_c -.->|imports| ext_stdlib_h + progs_doomgeneric_m_menu_c -.->|imports| ext_ctype_h + progs_doomgeneric_m_menu_c -.->|imports| ext_doomdef_h + progs_doomgeneric_m_menu_c -.->|imports| ext_doomkeys_h + progs_doomgeneric_m_menu_c -.->|imports| ext_dstrings_h + progs_doomgeneric_m_menu_c -.->|imports| ext_d_main_h + progs_doomgeneric_m_menu_c -.->|imports| ext_deh_main_h + progs_doomgeneric_m_menu_c -.->|imports| ext_i_swap_h + progs_doomgeneric_m_menu_c -.->|imports| ext_i_system_h + progs_doomgeneric_m_menu_c -.->|imports| ext_i_timer_h + progs_doomgeneric_m_menu_c -.->|imports| ext_i_video_h + progs_doomgeneric_m_menu_c -.->|imports| ext_m_misc_h + progs_doomgeneric_m_menu_c -.->|imports| ext_v_video_h + progs_doomgeneric_m_menu_c -.->|imports| ext_w_wad_h + progs_doomgeneric_m_menu_c -.->|imports| ext_z_zone_h + progs_doomgeneric_m_menu_c -.->|imports| ext_r_local_h + progs_doomgeneric_m_menu_c -.->|imports| ext_hu_stuff_h + progs_doomgeneric_m_menu_c -.->|imports| ext_g_game_h + progs_doomgeneric_m_menu_c -.->|imports| ext_m_argv_h + progs_doomgeneric_m_menu_c -.->|imports| ext_m_controls_h + progs_doomgeneric_m_menu_c -.->|imports| ext_p_saveg_h + progs_doomgeneric_m_menu_c -.->|imports| ext_s_sound_h + progs_doomgeneric_m_menu_c -.->|imports| ext_doomstat_h + progs_doomgeneric_m_menu_c -.->|imports| ext_sounds_h + progs_doomgeneric_m_menu_c -.->|imports| ext_m_menu_h + progs_doomgeneric_m_menu_h -.->|imports| ext_d_event_h + progs_doomgeneric_m_misc_c -.->|imports| ext_stdio_h + progs_doomgeneric_m_misc_c -.->|imports| ext_stdlib_h + progs_doomgeneric_m_misc_c -.->|imports| ext_string_h + progs_doomgeneric_m_misc_c -.->|imports| ext_ctype_h + progs_doomgeneric_m_misc_c -.->|imports| ext_errno_h + progs_doomgeneric_m_misc_c -.->|imports| ext_windows_h + ext_io_h["io.h"] + class ext_io_h ext; + progs_doomgeneric_m_misc_c -.->|imports| ext_io_h + ext_direct_h["direct.h"] + class ext_direct_h ext; + progs_doomgeneric_m_misc_c -.->|imports| ext_direct_h + ext_sys_stat_h["stat.h"] + class ext_sys_stat_h ext; + progs_doomgeneric_m_misc_c -.->|imports| ext_sys_stat_h + progs_doomgeneric_m_misc_c -.->|imports| ext_sys_types_h + progs_doomgeneric_m_misc_c -.->|imports| ext_doomtype_h + progs_doomgeneric_m_misc_c -.->|imports| ext_deh_str_h + progs_doomgeneric_m_misc_c -.->|imports| ext_i_swap_h + progs_doomgeneric_m_misc_c -.->|imports| ext_i_system_h + progs_doomgeneric_m_misc_c -.->|imports| ext_i_video_h + progs_doomgeneric_m_misc_c -.->|imports| ext_m_misc_h + progs_doomgeneric_m_misc_c -.->|imports| ext_v_video_h + progs_doomgeneric_m_misc_c -.->|imports| ext_w_wad_h + progs_doomgeneric_m_misc_c -.->|imports| ext_z_zone_h + progs_doomgeneric_m_misc_h -.->|imports| ext_stdio_h + progs_doomgeneric_m_misc_h -.->|imports| ext_stdarg_h + progs_doomgeneric_m_misc_h -.->|imports| ext_doomtype_h + progs_doomgeneric_m_random_h -.->|imports| ext_doomtype_h + progs_doomgeneric_memio_c -.->|imports| ext_stdio_h + progs_doomgeneric_memio_c -.->|imports| ext_stdlib_h + progs_doomgeneric_memio_c -.->|imports| ext_string_h + ext_memio_h["memio.h"] + class ext_memio_h ext; + progs_doomgeneric_memio_c -.->|imports| ext_memio_h + progs_doomgeneric_memio_c -.->|imports| ext_z_zone_h + progs_doomgeneric_net_client_h -.->|imports| ext_doomtype_h + progs_doomgeneric_net_client_h -.->|imports| ext_d_ticcmd_h + progs_doomgeneric_net_client_h -.->|imports| ext_sha1_h + progs_doomgeneric_net_client_h -.->|imports| ext_net_defs_h + progs_doomgeneric_net_defs_h -.->|imports| ext_stdio_h + progs_doomgeneric_net_defs_h -.->|imports| ext_doomtype_h + progs_doomgeneric_net_defs_h -.->|imports| ext_d_ticcmd_h + progs_doomgeneric_net_defs_h -.->|imports| ext_sha1_h + progs_doomgeneric_net_gui_h -.->|imports| ext_doomtype_h + progs_doomgeneric_net_io_h -.->|imports| ext_net_defs_h + progs_doomgeneric_net_loop_h -.->|imports| ext_net_defs_h + progs_doomgeneric_net_packet_h -.->|imports| ext_net_defs_h + progs_doomgeneric_net_query_h -.->|imports| ext_net_defs_h + progs_doomgeneric_net_sdl_h -.->|imports| ext_net_defs_h + progs_doomgeneric_p_ceilng_c -.->|imports| ext_z_zone_h + progs_doomgeneric_p_ceilng_c -.->|imports| ext_doomdef_h + progs_doomgeneric_p_ceilng_c -.->|imports| ext_p_local_h + progs_doomgeneric_p_ceilng_c -.->|imports| ext_s_sound_h + progs_doomgeneric_p_ceilng_c -.->|imports| ext_doomstat_h + progs_doomgeneric_p_ceilng_c -.->|imports| ext_r_state_h + progs_doomgeneric_p_ceilng_c -.->|imports| ext_sounds_h + progs_doomgeneric_p_doors_c -.->|imports| ext_z_zone_h + progs_doomgeneric_p_doors_c -.->|imports| ext_doomdef_h + progs_doomgeneric_p_doors_c -.->|imports| ext_deh_main_h + progs_doomgeneric_p_doors_c -.->|imports| ext_p_local_h + progs_doomgeneric_p_doors_c -.->|imports| ext_s_sound_h + progs_doomgeneric_p_doors_c -.->|imports| ext_doomstat_h + progs_doomgeneric_p_doors_c -.->|imports| ext_r_state_h + progs_doomgeneric_p_doors_c -.->|imports| ext_dstrings_h + progs_doomgeneric_p_doors_c -.->|imports| ext_sounds_h + progs_doomgeneric_p_enemy_c -.->|imports| ext_stdio_h + progs_doomgeneric_p_enemy_c -.->|imports| ext_stdlib_h + progs_doomgeneric_p_enemy_c -.->|imports| ext_m_random_h + progs_doomgeneric_p_enemy_c -.->|imports| ext_i_system_h + progs_doomgeneric_p_enemy_c -.->|imports| ext_doomdef_h + progs_doomgeneric_p_enemy_c -.->|imports| ext_p_local_h + progs_doomgeneric_p_enemy_c -.->|imports| ext_s_sound_h + progs_doomgeneric_p_enemy_c -.->|imports| ext_g_game_h + progs_doomgeneric_p_enemy_c -.->|imports| ext_doomstat_h + progs_doomgeneric_p_enemy_c -.->|imports| ext_r_state_h + progs_doomgeneric_p_enemy_c -.->|imports| ext_sounds_h + progs_doomgeneric_p_floor_c -.->|imports| ext_z_zone_h + progs_doomgeneric_p_floor_c -.->|imports| ext_doomdef_h + progs_doomgeneric_p_floor_c -.->|imports| ext_p_local_h + progs_doomgeneric_p_floor_c -.->|imports| ext_s_sound_h + progs_doomgeneric_p_floor_c -.->|imports| ext_doomstat_h + progs_doomgeneric_p_floor_c -.->|imports| ext_r_state_h + progs_doomgeneric_p_floor_c -.->|imports| ext_sounds_h + progs_doomgeneric_p_inter_c -.->|imports| ext_doomdef_h + progs_doomgeneric_p_inter_c -.->|imports| ext_dstrings_h + progs_doomgeneric_p_inter_c -.->|imports| ext_sounds_h + progs_doomgeneric_p_inter_c -.->|imports| ext_deh_main_h + progs_doomgeneric_p_inter_c -.->|imports| ext_deh_misc_h + progs_doomgeneric_p_inter_c -.->|imports| ext_doomstat_h + progs_doomgeneric_p_inter_c -.->|imports| ext_m_random_h + progs_doomgeneric_p_inter_c -.->|imports| ext_i_system_h + progs_doomgeneric_p_inter_c -.->|imports| ext_am_map_h + progs_doomgeneric_p_inter_c -.->|imports| ext_p_local_h + progs_doomgeneric_p_inter_c -.->|imports| ext_s_sound_h + ext_p_inter_h["p_inter.h"] + class ext_p_inter_h ext; + progs_doomgeneric_p_inter_c -.->|imports| ext_p_inter_h + progs_doomgeneric_p_lights_c -.->|imports| ext_z_zone_h + progs_doomgeneric_p_lights_c -.->|imports| ext_m_random_h + progs_doomgeneric_p_lights_c -.->|imports| ext_doomdef_h + progs_doomgeneric_p_lights_c -.->|imports| ext_p_local_h + progs_doomgeneric_p_lights_c -.->|imports| ext_r_state_h + progs_doomgeneric_p_local_h -.->|imports| ext_r_local_h + ext_p_spec_h["p_spec.h"] + class ext_p_spec_h ext; + progs_doomgeneric_p_local_h -.->|imports| ext_p_spec_h + progs_doomgeneric_p_map_c -.->|imports| ext_stdio_h + progs_doomgeneric_p_map_c -.->|imports| ext_stdlib_h + progs_doomgeneric_p_map_c -.->|imports| ext_deh_misc_h + progs_doomgeneric_p_map_c -.->|imports| ext_m_bbox_h + progs_doomgeneric_p_map_c -.->|imports| ext_m_random_h + progs_doomgeneric_p_map_c -.->|imports| ext_i_system_h + progs_doomgeneric_p_map_c -.->|imports| ext_doomdef_h + progs_doomgeneric_p_map_c -.->|imports| ext_m_argv_h + progs_doomgeneric_p_map_c -.->|imports| ext_m_misc_h + progs_doomgeneric_p_map_c -.->|imports| ext_p_local_h + progs_doomgeneric_p_map_c -.->|imports| ext_s_sound_h + progs_doomgeneric_p_map_c -.->|imports| ext_doomstat_h + progs_doomgeneric_p_map_c -.->|imports| ext_r_state_h + progs_doomgeneric_p_map_c -.->|imports| ext_sounds_h + progs_doomgeneric_p_maputl_c -.->|imports| ext_stdlib_h + progs_doomgeneric_p_maputl_c -.->|imports| ext_m_bbox_h + progs_doomgeneric_p_maputl_c -.->|imports| ext_doomdef_h + progs_doomgeneric_p_maputl_c -.->|imports| ext_doomstat_h + progs_doomgeneric_p_maputl_c -.->|imports| ext_p_local_h + progs_doomgeneric_p_maputl_c -.->|imports| ext_r_state_h + progs_doomgeneric_p_mobj_c -.->|imports| ext_stdio_h + progs_doomgeneric_p_mobj_c -.->|imports| ext_i_system_h + progs_doomgeneric_p_mobj_c -.->|imports| ext_z_zone_h + progs_doomgeneric_p_mobj_c -.->|imports| ext_m_random_h + progs_doomgeneric_p_mobj_c -.->|imports| ext_doomdef_h + progs_doomgeneric_p_mobj_c -.->|imports| ext_p_local_h + progs_doomgeneric_p_mobj_c -.->|imports| ext_sounds_h + progs_doomgeneric_p_mobj_c -.->|imports| ext_st_stuff_h + progs_doomgeneric_p_mobj_c -.->|imports| ext_hu_stuff_h + progs_doomgeneric_p_mobj_c -.->|imports| ext_s_sound_h + progs_doomgeneric_p_mobj_c -.->|imports| ext_doomstat_h + progs_doomgeneric_p_mobj_h -.->|imports| ext_tables_h + progs_doomgeneric_p_mobj_h -.->|imports| ext_m_fixed_h + progs_doomgeneric_p_mobj_h -.->|imports| ext_d_think_h + progs_doomgeneric_p_mobj_h -.->|imports| ext_doomdata_h + progs_doomgeneric_p_mobj_h -.->|imports| ext_info_h + progs_doomgeneric_p_plats_c -.->|imports| ext_stdio_h + progs_doomgeneric_p_plats_c -.->|imports| ext_i_system_h + progs_doomgeneric_p_plats_c -.->|imports| ext_z_zone_h + progs_doomgeneric_p_plats_c -.->|imports| ext_m_random_h + progs_doomgeneric_p_plats_c -.->|imports| ext_doomdef_h + progs_doomgeneric_p_plats_c -.->|imports| ext_p_local_h + progs_doomgeneric_p_plats_c -.->|imports| ext_s_sound_h + progs_doomgeneric_p_plats_c -.->|imports| ext_doomstat_h + progs_doomgeneric_p_plats_c -.->|imports| ext_r_state_h + progs_doomgeneric_p_plats_c -.->|imports| ext_sounds_h + progs_doomgeneric_p_pspr_c -.->|imports| ext_doomdef_h + progs_doomgeneric_p_pspr_c -.->|imports| ext_d_event_h + progs_doomgeneric_p_pspr_c -.->|imports| ext_deh_misc_h + progs_doomgeneric_p_pspr_c -.->|imports| ext_m_random_h + progs_doomgeneric_p_pspr_c -.->|imports| ext_p_local_h + progs_doomgeneric_p_pspr_c -.->|imports| ext_s_sound_h + progs_doomgeneric_p_pspr_c -.->|imports| ext_doomstat_h + progs_doomgeneric_p_pspr_c -.->|imports| ext_sounds_h + progs_doomgeneric_p_pspr_c -.->|imports| ext_p_pspr_h + progs_doomgeneric_p_pspr_h -.->|imports| ext_m_fixed_h + progs_doomgeneric_p_pspr_h -.->|imports| ext_tables_h + progs_doomgeneric_p_pspr_h -.->|imports| ext_info_h + progs_doomgeneric_p_saveg_c -.->|imports| ext_stdio_h + progs_doomgeneric_p_saveg_c -.->|imports| ext_stdlib_h + progs_doomgeneric_p_saveg_c -.->|imports| ext_dstrings_h + progs_doomgeneric_p_saveg_c -.->|imports| ext_deh_main_h + progs_doomgeneric_p_saveg_c -.->|imports| ext_i_system_h + progs_doomgeneric_p_saveg_c -.->|imports| ext_z_zone_h + progs_doomgeneric_p_saveg_c -.->|imports| ext_p_local_h + progs_doomgeneric_p_saveg_c -.->|imports| ext_p_saveg_h + progs_doomgeneric_p_saveg_c -.->|imports| ext_doomstat_h + progs_doomgeneric_p_saveg_c -.->|imports| ext_g_game_h + progs_doomgeneric_p_saveg_c -.->|imports| ext_m_misc_h + progs_doomgeneric_p_saveg_c -.->|imports| ext_r_state_h + progs_doomgeneric_p_saveg_h -.->|imports| ext_stdio_h + progs_doomgeneric_p_setup_c -.->|imports| ext_math_h + progs_doomgeneric_p_setup_c -.->|imports| ext_z_zone_h + progs_doomgeneric_p_setup_c -.->|imports| ext_deh_main_h + progs_doomgeneric_p_setup_c -.->|imports| ext_i_swap_h + progs_doomgeneric_p_setup_c -.->|imports| ext_m_argv_h + progs_doomgeneric_p_setup_c -.->|imports| ext_m_bbox_h + progs_doomgeneric_p_setup_c -.->|imports| ext_g_game_h + progs_doomgeneric_p_setup_c -.->|imports| ext_i_system_h + progs_doomgeneric_p_setup_c -.->|imports| ext_w_wad_h + progs_doomgeneric_p_setup_c -.->|imports| ext_doomdef_h + progs_doomgeneric_p_setup_c -.->|imports| ext_p_local_h + progs_doomgeneric_p_setup_c -.->|imports| ext_s_sound_h + progs_doomgeneric_p_setup_c -.->|imports| ext_doomstat_h + progs_doomgeneric_p_sight_c -.->|imports| ext_doomdef_h + progs_doomgeneric_p_sight_c -.->|imports| ext_i_system_h + progs_doomgeneric_p_sight_c -.->|imports| ext_p_local_h + progs_doomgeneric_p_sight_c -.->|imports| ext_r_state_h + progs_doomgeneric_p_spec_c -.->|imports| ext_stdlib_h + progs_doomgeneric_p_spec_c -.->|imports| ext_doomdef_h + progs_doomgeneric_p_spec_c -.->|imports| ext_doomstat_h + progs_doomgeneric_p_spec_c -.->|imports| ext_deh_main_h + progs_doomgeneric_p_spec_c -.->|imports| ext_i_system_h + progs_doomgeneric_p_spec_c -.->|imports| ext_z_zone_h + progs_doomgeneric_p_spec_c -.->|imports| ext_m_argv_h + progs_doomgeneric_p_spec_c -.->|imports| ext_m_misc_h + progs_doomgeneric_p_spec_c -.->|imports| ext_m_random_h + progs_doomgeneric_p_spec_c -.->|imports| ext_w_wad_h + progs_doomgeneric_p_spec_c -.->|imports| ext_r_local_h + progs_doomgeneric_p_spec_c -.->|imports| ext_p_local_h + progs_doomgeneric_p_spec_c -.->|imports| ext_g_game_h + progs_doomgeneric_p_spec_c -.->|imports| ext_s_sound_h + progs_doomgeneric_p_spec_c -.->|imports| ext_r_state_h + progs_doomgeneric_p_spec_c -.->|imports| ext_sounds_h + progs_doomgeneric_p_switch_c -.->|imports| ext_stdio_h + progs_doomgeneric_p_switch_c -.->|imports| ext_i_system_h + progs_doomgeneric_p_switch_c -.->|imports| ext_deh_main_h + progs_doomgeneric_p_switch_c -.->|imports| ext_doomdef_h + progs_doomgeneric_p_switch_c -.->|imports| ext_p_local_h + progs_doomgeneric_p_switch_c -.->|imports| ext_g_game_h + progs_doomgeneric_p_switch_c -.->|imports| ext_s_sound_h + progs_doomgeneric_p_switch_c -.->|imports| ext_sounds_h + progs_doomgeneric_p_switch_c -.->|imports| ext_doomstat_h + progs_doomgeneric_p_switch_c -.->|imports| ext_r_state_h + progs_doomgeneric_p_telept_c -.->|imports| ext_doomdef_h + progs_doomgeneric_p_telept_c -.->|imports| ext_doomstat_h + progs_doomgeneric_p_telept_c -.->|imports| ext_s_sound_h + progs_doomgeneric_p_telept_c -.->|imports| ext_p_local_h + progs_doomgeneric_p_telept_c -.->|imports| ext_sounds_h + progs_doomgeneric_p_telept_c -.->|imports| ext_r_state_h + progs_doomgeneric_p_tick_c -.->|imports| ext_z_zone_h + progs_doomgeneric_p_tick_c -.->|imports| ext_p_local_h + progs_doomgeneric_p_tick_c -.->|imports| ext_doomstat_h + progs_doomgeneric_p_user_c -.->|imports| ext_doomdef_h + progs_doomgeneric_p_user_c -.->|imports| ext_d_event_h + progs_doomgeneric_p_user_c -.->|imports| ext_p_local_h + progs_doomgeneric_p_user_c -.->|imports| ext_doomstat_h + progs_doomgeneric_r_bsp_c -.->|imports| ext_doomdef_h + progs_doomgeneric_r_bsp_c -.->|imports| ext_m_bbox_h + progs_doomgeneric_r_bsp_c -.->|imports| ext_i_system_h + ext_r_main_h["r_main.h"] + class ext_r_main_h ext; + progs_doomgeneric_r_bsp_c -.->|imports| ext_r_main_h + ext_r_plane_h["r_plane.h"] + class ext_r_plane_h ext; + progs_doomgeneric_r_bsp_c -.->|imports| ext_r_plane_h + ext_r_things_h["r_things.h"] + class ext_r_things_h ext; + progs_doomgeneric_r_bsp_c -.->|imports| ext_r_things_h + progs_doomgeneric_r_bsp_c -.->|imports| ext_doomstat_h + progs_doomgeneric_r_bsp_c -.->|imports| ext_r_state_h + progs_doomgeneric_r_data_c -.->|imports| ext_stdio_h + progs_doomgeneric_r_data_c -.->|imports| ext_deh_main_h + progs_doomgeneric_r_data_c -.->|imports| ext_i_swap_h + progs_doomgeneric_r_data_c -.->|imports| ext_i_system_h + progs_doomgeneric_r_data_c -.->|imports| ext_z_zone_h + progs_doomgeneric_r_data_c -.->|imports| ext_w_wad_h + progs_doomgeneric_r_data_c -.->|imports| ext_doomdef_h + progs_doomgeneric_r_data_c -.->|imports| ext_m_misc_h + progs_doomgeneric_r_data_c -.->|imports| ext_r_local_h + progs_doomgeneric_r_data_c -.->|imports| ext_p_local_h + progs_doomgeneric_r_data_c -.->|imports| ext_doomstat_h + progs_doomgeneric_r_data_c -.->|imports| ext_r_sky_h + progs_doomgeneric_r_data_c -.->|imports| ext_r_data_h + progs_doomgeneric_r_data_h -.->|imports| ext_r_defs_h + progs_doomgeneric_r_data_h -.->|imports| ext_r_state_h + progs_doomgeneric_r_defs_h -.->|imports| ext_doomdef_h + progs_doomgeneric_r_defs_h -.->|imports| ext_m_fixed_h + progs_doomgeneric_r_defs_h -.->|imports| ext_d_think_h + progs_doomgeneric_r_defs_h -.->|imports| ext_p_mobj_h + progs_doomgeneric_r_defs_h -.->|imports| ext_i_video_h + ext_v_patch_h["v_patch.h"] + class ext_v_patch_h ext; + progs_doomgeneric_r_defs_h -.->|imports| ext_v_patch_h + progs_doomgeneric_r_draw_c -.->|imports| ext_doomdef_h + progs_doomgeneric_r_draw_c -.->|imports| ext_deh_main_h + progs_doomgeneric_r_draw_c -.->|imports| ext_i_system_h + progs_doomgeneric_r_draw_c -.->|imports| ext_z_zone_h + progs_doomgeneric_r_draw_c -.->|imports| ext_w_wad_h + progs_doomgeneric_r_draw_c -.->|imports| ext_r_local_h + progs_doomgeneric_r_draw_c -.->|imports| ext_v_video_h + progs_doomgeneric_r_draw_c -.->|imports| ext_doomstat_h + progs_doomgeneric_r_local_h -.->|imports| ext_tables_h + progs_doomgeneric_r_local_h -.->|imports| ext_doomdef_h + progs_doomgeneric_r_local_h -.->|imports| ext_r_data_h + progs_doomgeneric_r_local_h -.->|imports| ext_r_main_h + ext_r_bsp_h["r_bsp.h"] + class ext_r_bsp_h ext; + progs_doomgeneric_r_local_h -.->|imports| ext_r_bsp_h + ext_r_segs_h["r_segs.h"] + class ext_r_segs_h ext; + progs_doomgeneric_r_local_h -.->|imports| ext_r_segs_h + progs_doomgeneric_r_local_h -.->|imports| ext_r_plane_h + progs_doomgeneric_r_local_h -.->|imports| ext_r_data_h + progs_doomgeneric_r_local_h -.->|imports| ext_r_things_h + progs_doomgeneric_r_local_h -.->|imports| ext_r_draw_h + progs_doomgeneric_r_main_c -.->|imports| ext_stdlib_h + progs_doomgeneric_r_main_c -.->|imports| ext_math_h + progs_doomgeneric_r_main_c -.->|imports| ext_doomdef_h + progs_doomgeneric_r_main_c -.->|imports| ext_d_loop_h + progs_doomgeneric_r_main_c -.->|imports| ext_m_bbox_h + progs_doomgeneric_r_main_c -.->|imports| ext_m_menu_h + progs_doomgeneric_r_main_c -.->|imports| ext_r_local_h + progs_doomgeneric_r_main_c -.->|imports| ext_r_sky_h + progs_doomgeneric_r_main_h -.->|imports| ext_d_player_h + progs_doomgeneric_r_main_h -.->|imports| ext_r_data_h + progs_doomgeneric_r_plane_c -.->|imports| ext_stdio_h + progs_doomgeneric_r_plane_c -.->|imports| ext_stdlib_h + progs_doomgeneric_r_plane_c -.->|imports| ext_i_system_h + progs_doomgeneric_r_plane_c -.->|imports| ext_z_zone_h + progs_doomgeneric_r_plane_c -.->|imports| ext_w_wad_h + progs_doomgeneric_r_plane_c -.->|imports| ext_doomdef_h + progs_doomgeneric_r_plane_c -.->|imports| ext_doomstat_h + progs_doomgeneric_r_plane_c -.->|imports| ext_r_local_h + progs_doomgeneric_r_plane_c -.->|imports| ext_r_sky_h + progs_doomgeneric_r_plane_h -.->|imports| ext_r_data_h + progs_doomgeneric_r_segs_c -.->|imports| ext_stdio_h + progs_doomgeneric_r_segs_c -.->|imports| ext_stdlib_h + progs_doomgeneric_r_segs_c -.->|imports| ext_i_system_h + progs_doomgeneric_r_segs_c -.->|imports| ext_doomdef_h + progs_doomgeneric_r_segs_c -.->|imports| ext_doomstat_h + progs_doomgeneric_r_segs_c -.->|imports| ext_r_local_h + progs_doomgeneric_r_segs_c -.->|imports| ext_r_sky_h + progs_doomgeneric_r_sky_c -.->|imports| ext_m_fixed_h + progs_doomgeneric_r_sky_c -.->|imports| ext_r_data_h + progs_doomgeneric_r_sky_c -.->|imports| ext_r_sky_h + progs_doomgeneric_r_state_h -.->|imports| ext_d_player_h + progs_doomgeneric_r_state_h -.->|imports| ext_r_data_h + progs_doomgeneric_r_things_c -.->|imports| ext_stdio_h + progs_doomgeneric_r_things_c -.->|imports| ext_stdlib_h + progs_doomgeneric_r_things_c -.->|imports| ext_deh_main_h + progs_doomgeneric_r_things_c -.->|imports| ext_doomdef_h + progs_doomgeneric_r_things_c -.->|imports| ext_i_swap_h + progs_doomgeneric_r_things_c -.->|imports| ext_i_system_h + progs_doomgeneric_r_things_c -.->|imports| ext_z_zone_h + progs_doomgeneric_r_things_c -.->|imports| ext_w_wad_h + progs_doomgeneric_r_things_c -.->|imports| ext_r_local_h + progs_doomgeneric_r_things_c -.->|imports| ext_doomstat_h + progs_doomgeneric_s_sound_c -.->|imports| ext_stdio_h + progs_doomgeneric_s_sound_c -.->|imports| ext_stdlib_h + progs_doomgeneric_s_sound_c -.->|imports| ext_i_sound_h + progs_doomgeneric_s_sound_c -.->|imports| ext_i_system_h + progs_doomgeneric_s_sound_c -.->|imports| ext_doomfeatures_h + progs_doomgeneric_s_sound_c -.->|imports| ext_deh_str_h + progs_doomgeneric_s_sound_c -.->|imports| ext_doomstat_h + progs_doomgeneric_s_sound_c -.->|imports| ext_doomtype_h + progs_doomgeneric_s_sound_c -.->|imports| ext_sounds_h + progs_doomgeneric_s_sound_c -.->|imports| ext_s_sound_h + progs_doomgeneric_s_sound_c -.->|imports| ext_m_misc_h + progs_doomgeneric_s_sound_c -.->|imports| ext_m_random_h + progs_doomgeneric_s_sound_c -.->|imports| ext_m_argv_h + progs_doomgeneric_s_sound_c -.->|imports| ext_p_local_h + progs_doomgeneric_s_sound_c -.->|imports| ext_w_wad_h + progs_doomgeneric_s_sound_c -.->|imports| ext_z_zone_h + progs_doomgeneric_s_sound_h -.->|imports| ext_p_mobj_h + progs_doomgeneric_s_sound_h -.->|imports| ext_sounds_h + progs_doomgeneric_sha1_c -.->|imports| ext_stdio_h + progs_doomgeneric_sha1_c -.->|imports| ext_stdlib_h + progs_doomgeneric_sha1_c -.->|imports| ext_string_h + ext_assert_h["assert.h"] + class ext_assert_h ext; + progs_doomgeneric_sha1_c -.->|imports| ext_assert_h + progs_doomgeneric_sha1_c -.->|imports| ext_i_swap_h + progs_doomgeneric_sha1_c -.->|imports| ext_sha1_h + progs_doomgeneric_sha1_h -.->|imports| ext_doomtype_h + progs_doomgeneric_sounds_c -.->|imports| ext_stdlib_h + progs_doomgeneric_sounds_c -.->|imports| ext_doomtype_h + progs_doomgeneric_sounds_c -.->|imports| ext_sounds_h + progs_doomgeneric_sounds_h -.->|imports| ext_i_sound_h + progs_doomgeneric_st_lib_c -.->|imports| ext_stdio_h + progs_doomgeneric_st_lib_c -.->|imports| ext_ctype_h + progs_doomgeneric_st_lib_c -.->|imports| ext_deh_main_h + progs_doomgeneric_st_lib_c -.->|imports| ext_doomdef_h + progs_doomgeneric_st_lib_c -.->|imports| ext_z_zone_h + progs_doomgeneric_st_lib_c -.->|imports| ext_v_video_h + progs_doomgeneric_st_lib_c -.->|imports| ext_i_swap_h + progs_doomgeneric_st_lib_c -.->|imports| ext_i_system_h + progs_doomgeneric_st_lib_c -.->|imports| ext_w_wad_h + progs_doomgeneric_st_lib_c -.->|imports| ext_st_stuff_h + ext_st_lib_h["st_lib.h"] + class ext_st_lib_h ext; + progs_doomgeneric_st_lib_c -.->|imports| ext_st_lib_h + progs_doomgeneric_st_lib_c -.->|imports| ext_r_local_h + progs_doomgeneric_st_lib_h -.->|imports| ext_r_defs_h + progs_doomgeneric_st_stuff_c -.->|imports| ext_stdio_h + progs_doomgeneric_st_stuff_c -.->|imports| ext_i_system_h + progs_doomgeneric_st_stuff_c -.->|imports| ext_i_video_h + progs_doomgeneric_st_stuff_c -.->|imports| ext_z_zone_h + progs_doomgeneric_st_stuff_c -.->|imports| ext_m_misc_h + progs_doomgeneric_st_stuff_c -.->|imports| ext_m_random_h + progs_doomgeneric_st_stuff_c -.->|imports| ext_w_wad_h + progs_doomgeneric_st_stuff_c -.->|imports| ext_deh_main_h + progs_doomgeneric_st_stuff_c -.->|imports| ext_deh_misc_h + progs_doomgeneric_st_stuff_c -.->|imports| ext_doomdef_h + progs_doomgeneric_st_stuff_c -.->|imports| ext_doomkeys_h + progs_doomgeneric_st_stuff_c -.->|imports| ext_g_game_h + progs_doomgeneric_st_stuff_c -.->|imports| ext_st_stuff_h + progs_doomgeneric_st_stuff_c -.->|imports| ext_st_lib_h + progs_doomgeneric_st_stuff_c -.->|imports| ext_r_local_h + progs_doomgeneric_st_stuff_c -.->|imports| ext_p_local_h + progs_doomgeneric_st_stuff_c -.->|imports| ext_p_inter_h + progs_doomgeneric_st_stuff_c -.->|imports| ext_am_map_h + progs_doomgeneric_st_stuff_c -.->|imports| ext_m_cheat_h + progs_doomgeneric_st_stuff_c -.->|imports| ext_s_sound_h + progs_doomgeneric_st_stuff_c -.->|imports| ext_v_video_h + progs_doomgeneric_st_stuff_c -.->|imports| ext_doomstat_h + progs_doomgeneric_st_stuff_c -.->|imports| ext_dstrings_h + progs_doomgeneric_st_stuff_c -.->|imports| ext_sounds_h + progs_doomgeneric_st_stuff_h -.->|imports| ext_doomtype_h + progs_doomgeneric_st_stuff_h -.->|imports| ext_d_event_h + progs_doomgeneric_st_stuff_h -.->|imports| ext_m_cheat_h + progs_doomgeneric_statdump_c -.->|imports| ext_stdio_h + progs_doomgeneric_statdump_c -.->|imports| ext_stdlib_h + progs_doomgeneric_statdump_c -.->|imports| ext_string_h + progs_doomgeneric_statdump_c -.->|imports| ext_d_player_h + progs_doomgeneric_statdump_c -.->|imports| ext_d_mode_h + progs_doomgeneric_statdump_c -.->|imports| ext_m_argv_h + progs_doomgeneric_statdump_c -.->|imports| ext_statdump_h + progs_doomgeneric_tables_c -.->|imports| ext_tables_h + progs_doomgeneric_tables_h -.->|imports| ext_doomtype_h + progs_doomgeneric_tables_h -.->|imports| ext_m_fixed_h + progs_doomgeneric_v_video_c -.->|imports| ext_stdio_h + progs_doomgeneric_v_video_c -.->|imports| ext_string_h + progs_doomgeneric_v_video_c -.->|imports| ext_math_h + progs_doomgeneric_v_video_c -.->|imports| ext_i_system_h + progs_doomgeneric_v_video_c -.->|imports| ext_doomtype_h + progs_doomgeneric_v_video_c -.->|imports| ext_deh_str_h + progs_doomgeneric_v_video_c -.->|imports| ext_i_swap_h + progs_doomgeneric_v_video_c -.->|imports| ext_i_video_h + progs_doomgeneric_v_video_c -.->|imports| ext_m_bbox_h + progs_doomgeneric_v_video_c -.->|imports| ext_m_misc_h + progs_doomgeneric_v_video_c -.->|imports| ext_v_video_h + progs_doomgeneric_v_video_c -.->|imports| ext_w_wad_h + progs_doomgeneric_v_video_c -.->|imports| ext_z_zone_h + progs_doomgeneric_v_video_c -.->|imports| ext_config_h + ext_png_h["png.h"] + class ext_png_h ext; + progs_doomgeneric_v_video_c -.->|imports| ext_png_h + progs_doomgeneric_v_video_h -.->|imports| ext_doomtype_h + progs_doomgeneric_v_video_h -.->|imports| ext_v_patch_h + progs_doomgeneric_w_checksum_c -.->|imports| ext_stdio_h + progs_doomgeneric_w_checksum_c -.->|imports| ext_stdlib_h + progs_doomgeneric_w_checksum_c -.->|imports| ext_string_h + progs_doomgeneric_w_checksum_c -.->|imports| ext_m_misc_h + progs_doomgeneric_w_checksum_c -.->|imports| ext_sha1_h + progs_doomgeneric_w_checksum_c -.->|imports| ext_w_checksum_h + progs_doomgeneric_w_checksum_c -.->|imports| ext_w_wad_h + progs_doomgeneric_w_checksum_h -.->|imports| ext_doomtype_h + progs_doomgeneric_w_file_c -.->|imports| ext_stdio_h + progs_doomgeneric_w_file_c -.->|imports| ext_config_h + progs_doomgeneric_w_file_c -.->|imports| ext_doomtype_h + progs_doomgeneric_w_file_c -.->|imports| ext_m_argv_h + ext_w_file_h["w_file.h"] + class ext_w_file_h ext; + progs_doomgeneric_w_file_c -.->|imports| ext_w_file_h + progs_doomgeneric_w_file_h -.->|imports| ext_stdio_h + progs_doomgeneric_w_file_h -.->|imports| ext_doomtype_h + progs_doomgeneric_w_file_stdc_c -.->|imports| ext_stdio_h + progs_doomgeneric_w_file_stdc_c -.->|imports| ext_m_misc_h + progs_doomgeneric_w_file_stdc_c -.->|imports| ext_w_file_h + progs_doomgeneric_w_file_stdc_c -.->|imports| ext_z_zone_h + progs_doomgeneric_w_main_c -.->|imports| ext_doomfeatures_h + progs_doomgeneric_w_main_c -.->|imports| ext_d_iwad_h + progs_doomgeneric_w_main_c -.->|imports| ext_m_argv_h + progs_doomgeneric_w_main_c -.->|imports| ext_w_main_h + ext_w_merge_h["w_merge.h"] + class ext_w_merge_h ext; + progs_doomgeneric_w_main_c -.->|imports| ext_w_merge_h + progs_doomgeneric_w_main_c -.->|imports| ext_w_wad_h + progs_doomgeneric_w_main_c -.->|imports| ext_z_zone_h + progs_doomgeneric_w_wad_c -.->|imports| ext_ctype_h + progs_doomgeneric_w_wad_c -.->|imports| ext_stdio_h + progs_doomgeneric_w_wad_c -.->|imports| ext_stdlib_h + progs_doomgeneric_w_wad_c -.->|imports| ext_string_h + progs_doomgeneric_w_wad_c -.->|imports| ext_doomtype_h + progs_doomgeneric_w_wad_c -.->|imports| ext_config_h + progs_doomgeneric_w_wad_c -.->|imports| ext_d_iwad_h + progs_doomgeneric_w_wad_c -.->|imports| ext_i_swap_h + progs_doomgeneric_w_wad_c -.->|imports| ext_i_system_h + progs_doomgeneric_w_wad_c -.->|imports| ext_i_video_h + progs_doomgeneric_w_wad_c -.->|imports| ext_m_misc_h + progs_doomgeneric_w_wad_c -.->|imports| ext_z_zone_h + progs_doomgeneric_w_wad_c -.->|imports| ext_w_wad_h + progs_doomgeneric_w_wad_h -.->|imports| ext_stdio_h + progs_doomgeneric_w_wad_h -.->|imports| ext_doomtype_h + progs_doomgeneric_w_wad_h -.->|imports| ext_d_mode_h + progs_doomgeneric_w_wad_h -.->|imports| ext_w_file_h + progs_doomgeneric_wi_stuff_c -.->|imports| ext_stdio_h + progs_doomgeneric_wi_stuff_c -.->|imports| ext_z_zone_h + progs_doomgeneric_wi_stuff_c -.->|imports| ext_m_misc_h + progs_doomgeneric_wi_stuff_c -.->|imports| ext_m_random_h + progs_doomgeneric_wi_stuff_c -.->|imports| ext_deh_main_h + progs_doomgeneric_wi_stuff_c -.->|imports| ext_i_swap_h + progs_doomgeneric_wi_stuff_c -.->|imports| ext_i_system_h + progs_doomgeneric_wi_stuff_c -.->|imports| ext_w_wad_h + progs_doomgeneric_wi_stuff_c -.->|imports| ext_g_game_h + progs_doomgeneric_wi_stuff_c -.->|imports| ext_r_local_h + progs_doomgeneric_wi_stuff_c -.->|imports| ext_s_sound_h + progs_doomgeneric_wi_stuff_c -.->|imports| ext_doomstat_h + progs_doomgeneric_wi_stuff_c -.->|imports| ext_sounds_h + progs_doomgeneric_wi_stuff_c -.->|imports| ext_v_video_h + progs_doomgeneric_wi_stuff_c -.->|imports| ext_wi_stuff_h + progs_doomgeneric_wi_stuff_h -.->|imports| ext_doomdef_h + progs_doomgeneric_z_zone_c -.->|imports| ext_z_zone_h + progs_doomgeneric_z_zone_c -.->|imports| ext_i_system_h + progs_doomgeneric_z_zone_c -.->|imports| ext_doomtype_h + progs_doomgeneric_z_zone_h -.->|imports| ext_stdio_h + sched_c -.->|imports| ext_kernel_h + sched_c -.->|imports| ext_sched_h + sched_c -.->|imports| ext_bootdefs_h + sched_c -.->|imports| ext_vga_fb_h + sched_h -.->|imports| ext_stdint_h + test_http_server_py -.->|imports| ext_sys + test_http_server_py -.->|imports| ext_time + ext_http_server["http.server"] + class ext_http_server ext; + test_http_server_py -.->|imports| ext_http_server + ext_fcntl["fcntl"] + class ext_fcntl ext; + test_http_server_py -.->|imports| ext_fcntl + test_http_server_py -.->|imports| ext_struct + ext_tls_port_h["tls_port.h"] + class ext_tls_port_h ext; + tls_c -.->|imports| ext_tls_port_h + tls_c -.->|imports| ext_tls_h + ext_tls_roots_h["tls_roots.h"] + class ext_tls_roots_h ext; + tls_c -.->|imports| ext_tls_roots_h + tls_crypto_c -.->|imports| ext_tls_port_h + tls_crypto_c -.->|imports| ext_tls_h + tls_port_h -.->|imports| ext_stdio_h + tls_port_h -.->|imports| ext_stdlib_h + tls_port_h -.->|imports| ext_string_h + ext_time_h["time.h"] + class ext_time_h ext; + tls_port_h -.->|imports| ext_time_h + tls_port_h -.->|imports| ext_unistd_h + tls_port_h -.->|imports| ext_fcntl_h + tls_port_h -.->|imports| ext_kernel_h + tls_port_h -.->|imports| ext_net_h + tls_test_c -.->|imports| ext_stdio_h + tls_test_c -.->|imports| ext_stdlib_h + tls_test_c -.->|imports| ext_string_h + tls_test_c -.->|imports| ext_unistd_h + ext_sys_socket_h["socket.h"] + class ext_sys_socket_h ext; + tls_test_c -.->|imports| ext_sys_socket_h + ext_sys_select_h["select.h"] + class ext_sys_select_h ext; + tls_test_c -.->|imports| ext_sys_select_h + ext_netinet_in_h["in.h"] + class ext_netinet_in_h ext; + tls_test_c -.->|imports| ext_netinet_in_h + ext_arpa_inet_h["inet.h"] + class ext_arpa_inet_h ext; + tls_test_c -.->|imports| ext_arpa_inet_h + tls_test_c -.->|imports| ext_tls_port_h + tls_test_c -.->|imports| ext_tls_h + ext_tls_test_roots_h["tls_test_roots.h"] + class ext_tls_test_roots_h ext; + tls_test_c -.->|imports| ext_tls_test_roots_h + tls_test_py -.->|imports| ext_os + tls_test_py -.->|imports| ext_re + ext_shlex["shlex"] + class ext_shlex ext; + tls_test_py -.->|imports| ext_shlex + ext_socket["socket"] + class ext_socket ext; + tls_test_py -.->|imports| ext_socket + ext_ssl["ssl"] + class ext_ssl ext; + tls_test_py -.->|imports| ext_ssl + tls_test_py -.->|imports| ext_subprocess + tls_test_py -.->|imports| ext_sys + tls_test_py -.->|imports| ext_threading + tls_test_py -.->|imports| ext_time + ext_datetime["datetime"] + class ext_datetime ext; + tls_test_py -.->|imports| ext_datetime + tls_x509_c -.->|imports| ext_tls_port_h + tls_x509_c -.->|imports| ext_tls_h + vga_fb_c -.->|imports| ext_kernel_h + vga_fb_c -.->|imports| ext_vga_fb_h + vga_fb_h -.->|imports| ext_stdint_h +``` + +--- + +## UML Class Diagram + +Auto-generated Mermaid class diagram from parsed class-level symbols. Shows classes, structs, interfaces, traits, and their methods with inheritance and dependency relationships. + +```mermaid +classDiagram + class kernel_c_Block { + <> + +serial_tx_ready(void) + +serial_rx_ready(void) + +serial_putc(char c) + +serial_puts(const char *s) + +serial_available(void) + +serial_getc(void) + +vga_offset(int x, int y) + +vga_clear(void) + +vga_set_cursor(int x, int y) + +vga_scroll(void) + } + class kernel_c_snctx { + <> + +serial_tx_ready(void) + +serial_rx_ready(void) + +serial_putc(char c) + +serial_puts(const char *s) + +serial_available(void) + +serial_getc(void) + +vga_offset(int x, int y) + +vga_clear(void) + +vga_set_cursor(int x, int y) + +vga_scroll(void) + } + class kernel_c_exec_range { + <> + +serial_tx_ready(void) + +serial_rx_ready(void) + +serial_putc(char c) + +serial_puts(const char *s) + +serial_available(void) + +serial_getc(void) + +vga_offset(int x, int y) + +vga_clear(void) + +vga_set_cursor(int x, int y) + +vga_scroll(void) + } + class kernel_c_kiovec { + <> + +serial_tx_ready(void) + +serial_rx_ready(void) + +serial_putc(char c) + +serial_puts(const char *s) + +serial_available(void) + +serial_getc(void) + +vga_offset(int x, int y) + +vga_clear(void) + +vga_set_cursor(int x, int y) + +vga_scroll(void) + } + class mcp_dbg_driver_py_Client { + <> + +main() + +__init__(self) + +request(self, method, params) + +tool(self, name, params) + +close(self) + } + class mcp_dogfood_py_Client { + <> + +main() + +__init__(self, addons_dir) + +request(self, method, params) + +tool(self, name, params) + +close(self) + } + class minios_addons_py_AddonError { + <> + +_clean(s) + +_unquote(v) + +parse_addon_yaml(text) + +validate_addon(addon, source) + +validate_addon_path(path) + +validate_shell_line(line) + +load_addons_dir(addons_dir) + +split_for_editor(text) + +exit_code_of(text) + +install_addon(session, addon, cfg) + } + class minios_addons_py_AddonState { + <> + +_clean(s) + +_unquote(v) + +parse_addon_yaml(text) + +validate_addon(addon, source) + +validate_addon_path(path) + +validate_shell_line(line) + +load_addons_dir(addons_dir) + +split_for_editor(text) + +exit_code_of(text) + +install_addon(session, addon, cfg) + } + class minios_mcp_py_ToolError { + <> + +env_config() + +clamp_timeout(ms) + +validate_path(name) + +validate_content(text) + +subprocess_launch(cfg, slave_fd) + +main() + +__init__(self, code, message) + +__init__(self, cap) + +append(self, data) + +bytes_from(self, pos) + } + class minios_mcp_py_RPCError { + <> + +env_config() + +clamp_timeout(ms) + +validate_path(name) + +validate_content(text) + +subprocess_launch(cfg, slave_fd) + +main() + +__init__(self, code, message) + +__init__(self, cap) + +append(self, data) + +bytes_from(self, pos) + } + class minios_mcp_py_LogBuffer { + <> + +env_config() + +clamp_timeout(ms) + +validate_path(name) + +validate_content(text) + +subprocess_launch(cfg, slave_fd) + +main() + +__init__(self, code, message) + +__init__(self, cap) + +append(self, data) + +bytes_from(self, pos) + } + class minios_mcp_py_MiniOSSession { + <> + +env_config() + +clamp_timeout(ms) + +validate_path(name) + +validate_content(text) + +subprocess_launch(cfg, slave_fd) + +main() + +__init__(self, code, message) + +__init__(self, cap) + +append(self, data) + +bytes_from(self, pos) + } + class minios_mcp_py_MCPServer { + <> + +env_config() + +clamp_timeout(ms) + +validate_path(name) + +validate_content(text) + +subprocess_launch(cfg, slave_fd) + +main() + +__init__(self, code, message) + +__init__(self, cap) + +append(self, data) + +bytes_from(self, pos) + } + class test_minios_mcp_py_MCPServer { + <> + +load_module() + +have_qemu() + +__init__(self, env_extra) + +initialize(self) + +request(self, method, params) + +raw(self, line) + +_read_response(self) + +_roundtrip(self, msg) + +tool(self, name, params) + +close(self) + } + class test_minios_mcp_py_TestProtocol { + <> + +load_module() + +have_qemu() + +__init__(self, env_extra) + +initialize(self) + +request(self, method, params) + +raw(self, line) + +_read_response(self) + +_roundtrip(self, msg) + +tool(self, name, params) + +close(self) + } + class test_minios_mcp_py_TestValidation { + <> + +load_module() + +have_qemu() + +__init__(self, env_extra) + +initialize(self) + +request(self, method, params) + +raw(self, line) + +_read_response(self) + +_roundtrip(self, msg) + +tool(self, name, params) + +close(self) + } + class test_minios_mcp_py_TestLogBuffer { + <> + +load_module() + +have_qemu() + +__init__(self, env_extra) + +initialize(self) + +request(self, method, params) + +raw(self, line) + +_read_response(self) + +_roundtrip(self, msg) + +tool(self, name, params) + +close(self) + } + class test_minios_mcp_py__ConsoleBDDBase { + <> + +load_module() + +have_qemu() + +__init__(self, env_extra) + +initialize(self) + +request(self, method, params) + +raw(self, line) + +_read_response(self) + +_roundtrip(self, msg) + +tool(self, name, params) + +close(self) + } + class test_minios_mcp_py_TestMiniOSBDD { + <> + +load_module() + +have_qemu() + +__init__(self, env_extra) + +initialize(self) + +request(self, method, params) + +raw(self, line) + +_read_response(self) + +_roundtrip(self, msg) + +tool(self, name, params) + +close(self) + } + class test_minios_mcp_py_TestAddonYaml { + <> + +load_module() + +have_qemu() + +__init__(self, env_extra) + +initialize(self) + +request(self, method, params) + +raw(self, line) + +_read_response(self) + +_roundtrip(self, msg) + +tool(self, name, params) + +close(self) + } + class test_minios_mcp_py_TestAddonHelpers { + <> + +load_module() + +have_qemu() + +__init__(self, env_extra) + +initialize(self) + +request(self, method, params) + +raw(self, line) + +_read_response(self) + +_roundtrip(self, msg) + +tool(self, name, params) + +close(self) + } + class test_minios_mcp_py_FakeOS { + <> + +load_module() + +have_qemu() + +__init__(self, env_extra) + +initialize(self) + +request(self, method, params) + +raw(self, line) + +_read_response(self) + +_roundtrip(self, msg) + +tool(self, name, params) + +close(self) + } + class test_minios_mcp_py_TestAddonInstall { + <> + +load_module() + +have_qemu() + +__init__(self, env_extra) + +initialize(self) + +request(self, method, params) + +raw(self, line) + +_read_response(self) + +_roundtrip(self, msg) + +tool(self, name, params) + +close(self) + } + class test_minios_mcp_py_TestAddonBDD { + <> + +load_module() + +have_qemu() + +__init__(self, env_extra) + +initialize(self) + +request(self, method, params) + +raw(self, line) + +_read_response(self) + +_roundtrip(self, msg) + +tool(self, name, params) + +close(self) + } + class test_minios_mcp_py__toolerror { + <> + +load_module() + +have_qemu() + +__init__(self, env_extra) + +initialize(self) + +request(self, method, params) + +raw(self, line) + +_read_response(self) + +_roundtrip(self, msg) + +tool(self, name, params) + +close(self) + } + class minifs_dump_py_FS { + <> + +u16(d, o) + +u32(d, o) + +mode_str(m) + +main() + +__init__(self, fn) + +blk(self, n) + +_sb(self) + +inode(self, i) + +read(self, ino) + +resolve(self, path) + } + class minifs_fsck_py_FSCK { + <> + +u16(d, o) + +u32(d, o) + +main() + +__init__(self, fn) + +blk(self, n) + +_sb(self) + +inode(self, i) + +read(self, ino) + +err(self, msg) + +mark_block(self, n) + } + class mkfs_minifs_py_MiniFS { + <> + +roundup4(v) + +div_round_up(n, d) + +crc16(data) + +crc32(data) + +main() + +__init__(self, total_blocks) + +mark_inodes_used(self, start, count) + +mark_blocks_used(self, start, count) + +alloc_inode(self) + +alloc_block(self) + } + class net_c_net_arp_entry { + <> + +outb_port(unsigned short port, unsigned char val) + +inb_port(unsigned short port) + +outw_port(unsigned short port, unsigned short val) + +outl_port(unsigned short port, unsigned int val) + +inw_port(unsigned short port) + +inl_port(unsigned short port) + +net_reg8(unsigned short off) + +net_reg8_w(unsigned short off, unsigned char v) + +net_reg16(unsigned short off) + +net_reg16_w(unsigned short off, unsigned short v) + } + class net_c_net_dns_state { + <> + +outb_port(unsigned short port, unsigned char val) + +inb_port(unsigned short port) + +outw_port(unsigned short port, unsigned short val) + +outl_port(unsigned short port, unsigned int val) + +inw_port(unsigned short port) + +inl_port(unsigned short port) + +net_reg8(unsigned short off) + +net_reg8_w(unsigned short off, unsigned char v) + +net_reg16(unsigned short off) + +net_reg16_w(unsigned short off, unsigned short v) + } + class net_c_net_tcp_sock { + <> + +outb_port(unsigned short port, unsigned char val) + +inb_port(unsigned short port) + +outw_port(unsigned short port, unsigned short val) + +outl_port(unsigned short port, unsigned int val) + +inw_port(unsigned short port) + +inl_port(unsigned short port) + +net_reg8(unsigned short off) + +net_reg8_w(unsigned short off, unsigned char v) + +net_reg16(unsigned short off) + +net_reg16_w(unsigned short off, unsigned short v) + } + class d_player_h_player_s { + <> + } + class d_think_h_thinker_s { + <> + } + class doomgeneric_minios_c_color { + <> + +sys_time_ms(void) + +sys_kbd(void) + +sys_palette(const unsigned char *pal) + +sys_kbd_raw(int on) + +sys_vga_mode(int on) + +ht_hash(uint8_t r, uint8_t g, uint8_t b) + +ht_clear(void) + +ht_insert(uint8_t r, uint8_t g, uint8_t b, uint8_t idx) + +ht_lookup(uint8_t r, uint8_t g, uint8_t b) + +rebuild_palette_ht(void) + } + class i_sound_h_sfxinfo_struct { + <> + } + class i_system_c_atexit_listentry_s { + <> + +I_AtExit(atexit_func_t func, boolean run_on_error) + +I_Tactile(int on, int off, int total) + +AutoAllocMemory(int *size, int default_ram, int min_ram) + +I_ZoneBase(int *size) + +I_PrintBanner(char *msg) + +I_PrintDivider(void) + +I_PrintStartupBanner(char *gamedescription) + +I_ConsoleStdout(void) + +I_Quit(void) + +ZenityAvailable(void) + } + class i_video_c_FB_BitField { + <> + +cmap_to_rgb565(uint16_t * out, uint8_t * in, int in_pixels) + +cmap_to_fb(uint8_t * out, uint8_t * in, int in_pixels) + +I_InitGraphics(void) + +I_ShutdownGraphics(void) + +I_StartFrame(void) + +I_StartTic(void) + +I_UpdateNoBlit(void) + +I_FinishUpdate(void) + +I_ReadScreen(byte* scr) + +I_SetPalette(byte* palette) + } + class i_video_c_FB_ScreenInfo { + <> + +cmap_to_rgb565(uint16_t * out, uint8_t * in, int in_pixels) + +cmap_to_fb(uint8_t * out, uint8_t * in, int in_pixels) + +I_InitGraphics(void) + +I_ShutdownGraphics(void) + +I_StartFrame(void) + +I_StartTic(void) + +I_UpdateNoBlit(void) + +I_FinishUpdate(void) + +I_ReadScreen(byte* scr) + +I_SetPalette(byte* palette) + } + class i_video_c_color { + <> + +cmap_to_rgb565(uint16_t * out, uint8_t * in, int in_pixels) + +cmap_to_fb(uint8_t * out, uint8_t * in, int in_pixels) + +I_InitGraphics(void) + +I_ShutdownGraphics(void) + +I_StartFrame(void) + +I_StartTic(void) + +I_UpdateNoBlit(void) + +I_FinishUpdate(void) + +I_ReadScreen(byte* scr) + +I_SetPalette(byte* palette) + } + class m_menu_c_menu_s { + <> + +M_ReadSaveStrings(void) + +M_DrawLoad(void) + +M_DrawSaveLoadBorder(int x,int y) + +M_LoadSelect(int choice) + +M_LoadGame(int choice) + +M_DrawSave(void) + +M_DoSave(int slot) + +M_SaveSelect(int choice) + +M_SaveGame(int choice) + +M_QuickSaveResponse(int key) + } + class memio_c__MEMFILE { + <> + +mem_fopen_read(void *buf, size_t buflen) + +mem_fread(void *buf, size_t size, size_t nmemb, MEMFILE *stream) + +mem_fopen_write(void) + +mem_fwrite(const void *ptr, size_t size, size_t nmemb, MEMFILE *stream) + +mem_get_buf(MEMFILE *stream, void **buf, size_t *buflen) + +mem_fclose(MEMFILE *stream) + +mem_ftell(MEMFILE *stream) + +mem_fseek(MEMFILE *stream, signed long position, mem_rel_t whence) + } + class net_defs_h__net_packet_s { + <> + } + class net_defs_h__net_module_s { + <> + } + class net_defs_h__net_addr_s { + <> + } + class p_mobj_h_mobj_s { + <> + } + class r_data_c_texture_s { + <> + +R_DrawColumnInCache( column_t* patch, + byte* cache, + int originy, + int cacheheight ) + +R_GenerateComposite(int texnum) + +R_GenerateLookup(int texnum) + +R_GetColumn( int tex, + int col ) + +GenerateTextureHashTable(void) + +R_InitTextures(void) + +R_InitFlats(void) + +R_InitSpriteLumps(void) + +R_InitColormaps(void) + +R_InitData(void) + } + class r_defs_h_line_s { + <> + } + class r_defs_h_line_s { + <> + } + class r_defs_h_subsector_s { + <> + } + class r_defs_h_drawseg_s { + <> + } +``` + +--- + +## Code Property Graph + +Machine-readable Code Property Graph (CPG) in JSON-LD format. This block allows AI agents to parse the full structural graph without additional file reads. Compatible with GraphRAG pipelines. + +```json +{"@context": "https://schema.org", "analysis": {"communities": [{"cohesion": 0.619, "id": 0, "label": "root", "size": 10}, {"cohesion": 0.724, "id": 1, "label": "root", "size": 16}, {"cohesion": 1.0, "id": 2, "label": "mcp", "size": 2}], "god_nodes": [{"node_id": "kernel.c", "score": 43.3}, {"node_id": "progs/doomgeneric/d_englsh.h", "score": 28.6}, {"node_id": "kernel.h", "score": 23.4}, {"node_id": "minifs.c", "score": 15.3}, {"node_id": "tls_port.h", "score": 14.7}, {"node_id": "tls.h", "score": 14.2}, {"node_id": "progs/doomgeneric/st_stuff.c", "score": 13.7}, {"node_id": "bootdefs.h", "score": 13.6}, {"node_id": "net.c", "score": 12.4}, {"node_id": "tls_crypto.c", "score": 11.6}], "surprising_connections": [{"hops": 5, "source": "lz4_kernel.h", "target": "tls_roots.h"}, {"hops": 5, "source": "lz4_kernel.h", "target": "tls_test_roots.h"}, {"hops": 4, "source": "block.c", "target": "tls_roots.h"}, {"hops": 4, "source": "block.c", "target": "tls_test_roots.h"}, {"hops": 4, "source": "block.h", "target": "tls_roots.h"}]}, "edges": [{"confidence": "EXTRACTED", "relation": "imports", "source": "block.c", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "block.c", "target": "ide.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "block.c", "target": "block.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "cvm_host.c", "target": "cvm.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "gen_minifs.py", "target": "os"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "ide.c", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "ide.c", "target": "ide.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel.c", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel.c", "target": "net.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel.c", "target": "tls.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel.c", "target": "bootdefs.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel.c", "target": "minifs.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel.c", "target": "ide.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel.c", "target": "block.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel.c", "target": "sched.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "kernel.c", "target": "vga_fb.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "lz4_kernel.c", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "lz4_kernel.c", "target": "lz4_kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/mcp_dbg_driver.py", "target": "json"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/mcp_dbg_driver.py", "target": "os"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/mcp_dbg_driver.py", "target": "select"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/mcp_dbg_driver.py", "target": "subprocess"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/mcp_dbg_driver.py", "target": "sys"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/mcp_dbg_driver.py", "target": "time"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/mcp_dogfood.py", "target": "json"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/mcp_dogfood.py", "target": "os"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/mcp_dogfood.py", "target": "select"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/mcp_dogfood.py", "target": "subprocess"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/mcp_dogfood.py", "target": "sys"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/mcp_dogfood.py", "target": "time"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/minios_addons.py", "target": "json"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/minios_addons.py", "target": "os"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/minios_addons.py", "target": "re"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/minios_addons.py", "target": "shutil"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/minios_addons.py", "target": "subprocess"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/minios_addons.py", "target": "tempfile"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/minios_addons.py", "target": "time"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/minios_mcp.py", "target": "atexit"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/minios_mcp.py", "target": "json"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/minios_mcp.py", "target": "os"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/minios_mcp.py", "target": "signal"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/minios_mcp.py", "target": "sys"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/minios_mcp.py", "target": "tempfile"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/minios_mcp.py", "target": "threading"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/minios_mcp.py", "target": "time"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/minios_mcp.py", "target": "tty"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/minios_mcp.py", "target": "minios_addons"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/minios_mcp.py", "target": "subprocess"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/test_minios_mcp.py", "target": "importlib.util"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/test_minios_mcp.py", "target": "json"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/test_minios_mcp.py", "target": "os"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/test_minios_mcp.py", "target": "select"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/test_minios_mcp.py", "target": "subprocess"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/test_minios_mcp.py", "target": "sys"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/test_minios_mcp.py", "target": "tempfile"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/test_minios_mcp.py", "target": "unittest"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/test_minios_mcp.py", "target": "shutil"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/test_minios_mcp.py", "target": "importlib.util"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/test_minios_mcp.py", "target": "importlib.util"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/test_minios_mcp.py", "target": "importlib.util"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/test_minios_mcp.py", "target": "shutil"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/test_minios_mcp.py", "target": "shutil"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mcp/test_minios_mcp.py", "target": "shutil"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "minifs.c", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "minifs.c", "target": "minifs.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "minifs.c", "target": "block.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "minifs.c", "target": "ide.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "minifs.c", "target": "lz4_kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "minifs_dump.py", "target": "struct"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "minifs_dump.py", "target": "sys"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "minifs_fsck.py", "target": "struct"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "minifs_fsck.py", "target": "sys"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mkfs.minifs.py", "target": "struct"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mkfs.minifs.py", "target": "os"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mkfs.minifs.py", "target": "sys"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mkramdisk.py", "target": "os"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mkramdisk.py", "target": "struct"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "mkramdisk.py", "target": "sys"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "net.c", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "net.c", "target": "net.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "pcspk.c", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/am_map.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/am_map.c", "target": "deh_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/am_map.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/am_map.c", "target": "doomkeys.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/am_map.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/am_map.c", "target": "st_stuff.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/am_map.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/am_map.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/am_map.c", "target": "m_cheat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/am_map.c", "target": "m_controls.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/am_map.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/am_map.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/am_map.c", "target": "v_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/am_map.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/am_map.c", "target": "r_state.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/am_map.c", "target": "dstrings.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/am_map.c", "target": "am_map.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/am_map.h", "target": "d_event.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/am_map.h", "target": "m_cheat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_event.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_event.c", "target": "d_event.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_event.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_items.c", "target": "info.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_items.c", "target": "d_items.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_items.h", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_iwad.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_iwad.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_iwad.c", "target": "ctype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_iwad.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_iwad.c", "target": "config.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_iwad.c", "target": "deh_str.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_iwad.c", "target": "doomkeys.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_iwad.c", "target": "d_iwad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_iwad.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_iwad.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_iwad.c", "target": "m_config.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_iwad.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_iwad.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_iwad.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_iwad.c", "target": "windows.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_iwad.h", "target": "d_mode.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_loop.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_loop.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_loop.c", "target": "doomfeatures.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_loop.c", "target": "d_event.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_loop.c", "target": "d_loop.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_loop.c", "target": "d_ticcmd.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_loop.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_loop.c", "target": "i_timer.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_loop.c", "target": "i_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_loop.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_loop.c", "target": "m_fixed.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_loop.c", "target": "net_client.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_loop.c", "target": "net_gui.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_loop.c", "target": "net_io.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_loop.c", "target": "net_query.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_loop.c", "target": "net_server.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_loop.c", "target": "net_sdl.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_loop.c", "target": "net_loop.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_loop.h", "target": "net_defs.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "ctype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "config.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "deh_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "dstrings.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "doomfeatures.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "d_iwad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "w_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "s_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "v_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "f_finale.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "f_wipe.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "m_config.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "m_controls.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "m_menu.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "p_saveg.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "i_endoom.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "i_joystick.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "i_timer.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "i_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "g_game.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "hu_stuff.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "wi_stuff.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "st_stuff.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "am_map.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "net_client.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "net_dedicated.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "net_query.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "p_setup.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "r_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "statdump.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.c", "target": "d_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_main.h", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_mode.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_mode.c", "target": "d_mode.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_mode.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_net.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_net.c", "target": "doomfeatures.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_net.c", "target": "d_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_net.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_net.c", "target": "m_menu.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_net.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_net.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_net.c", "target": "i_timer.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_net.c", "target": "i_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_net.c", "target": "g_game.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_net.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_net.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_net.c", "target": "w_checksum.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_net.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_net.c", "target": "deh_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_net.c", "target": "d_loop.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_player.h", "target": "d_items.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_player.h", "target": "p_pspr.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_player.h", "target": "p_mobj.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_player.h", "target": "d_ticcmd.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_player.h", "target": "net_defs.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_textur.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/d_ticcmd.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/deh_main.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/deh_main.h", "target": "doomfeatures.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/deh_main.h", "target": "deh_str.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/deh_main.h", "target": "sha1.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/deh_misc.h", "target": "doomfeatures.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/deh_str.h", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/deh_str.h", "target": "doomfeatures.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomdata.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomdata.h", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomdef.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomdef.h", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomdef.h", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomdef.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomdef.h", "target": "i_timer.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomdef.h", "target": "d_mode.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric.c", "target": "doomgeneric.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric.h", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric.h", "target": "stdint.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_minios.c", "target": "doomgeneric.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_minios.c", "target": "doomkeys.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_minios.c", "target": "stdint.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_minios.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_sdl.c", "target": "doomkeys.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_sdl.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_sdl.c", "target": "doomgeneric.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_sdl.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_sdl.c", "target": "unistd.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_sdl.c", "target": "stdbool.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_sdl.c", "target": "SDL.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_soso.c", "target": "doomkeys.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_soso.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_soso.c", "target": "doomgeneric.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_soso.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_soso.c", "target": "fcntl.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_soso.c", "target": "unistd.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_soso.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_soso.c", "target": "sys/ioctl.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_soso.c", "target": "sys/mman.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_soso.c", "target": "termios.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_soso.c", "target": "soso.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_sosox.c", "target": "doomkeys.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_sosox.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_sosox.c", "target": "doomgeneric.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_sosox.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_sosox.c", "target": "fcntl.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_sosox.c", "target": "unistd.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_sosox.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_sosox.c", "target": "sys/ioctl.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_sosox.c", "target": "termios.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_sosox.c", "target": "soso.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_sosox.c", "target": "nano-X.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_win.c", "target": "doomkeys.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_win.c", "target": "doomgeneric.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_win.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_win.c", "target": "Windows.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_xlib.c", "target": "doomkeys.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_xlib.c", "target": "doomgeneric.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_xlib.c", "target": "ctype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_xlib.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_xlib.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_xlib.c", "target": "unistd.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_xlib.c", "target": "sys/time.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_xlib.c", "target": "X11/Xlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_xlib.c", "target": "X11/Xutil.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomgeneric_xlib.c", "target": "X11/Xatom.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomstat.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomstat.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomstat.h", "target": "doomdata.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomstat.h", "target": "d_loop.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomstat.h", "target": "d_player.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomstat.h", "target": "d_mode.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomstat.h", "target": "net_defs.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomtype.h", "target": "strings.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomtype.h", "target": "inttypes.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/doomtype.h", "target": "limits.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/dstrings.c", "target": "dstrings.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/dstrings.h", "target": "d_englsh.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/dummy.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_finale.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_finale.c", "target": "ctype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_finale.c", "target": "deh_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_finale.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_finale.c", "target": "i_swap.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_finale.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_finale.c", "target": "v_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_finale.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_finale.c", "target": "s_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_finale.c", "target": "d_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_finale.c", "target": "dstrings.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_finale.c", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_finale.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_finale.c", "target": "r_state.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_finale.c", "target": "hu_stuff.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_finale.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_finale.h", "target": "d_event.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_wipe.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_wipe.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_wipe.c", "target": "i_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_wipe.c", "target": "v_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_wipe.c", "target": "m_random.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_wipe.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/f_wipe.c", "target": "f_wipe.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "math.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "doomkeys.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "deh_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "deh_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "f_finale.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "m_controls.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "m_menu.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "m_random.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "i_timer.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "i_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "p_setup.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "p_saveg.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "p_tick.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "d_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "wi_stuff.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "hu_stuff.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "st_stuff.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "am_map.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "statdump.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "v_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "s_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "dstrings.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "r_data.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "r_sky.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.c", "target": "g_game.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.h", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.h", "target": "d_event.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/g_game.h", "target": "d_ticcmd.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/gusconf.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/gusconf.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/gusconf.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/gusconf.c", "target": "ctype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/gusconf.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/gusconf.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/gusconf.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_lib.c", "target": "ctype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_lib.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_lib.c", "target": "doomkeys.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_lib.c", "target": "v_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_lib.c", "target": "i_swap.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_lib.c", "target": "hu_lib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_lib.c", "target": "r_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_lib.c", "target": "r_draw.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_lib.h", "target": "r_defs.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_stuff.c", "target": "ctype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_stuff.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_stuff.c", "target": "doomkeys.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_stuff.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_stuff.c", "target": "deh_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_stuff.c", "target": "i_swap.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_stuff.c", "target": "i_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_stuff.c", "target": "hu_stuff.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_stuff.c", "target": "hu_lib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_stuff.c", "target": "m_controls.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_stuff.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_stuff.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_stuff.c", "target": "s_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_stuff.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_stuff.c", "target": "dstrings.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_stuff.c", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/hu_stuff.h", "target": "d_event.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_cdmus.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_cdmus.c", "target": "SDL.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_cdmus.c", "target": "SDL_cdrom.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_cdmus.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_cdmus.c", "target": "i_cdmus.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_endoom.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_endoom.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_endoom.c", "target": "config.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_endoom.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_endoom.c", "target": "i_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_endoom.c", "target": "txt_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "ctype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "math.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "fcntl.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "config.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "deh_str.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "doomkeys.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "i_joystick.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "i_swap.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "i_timer.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "i_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "i_scale.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "m_config.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "tables.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "v_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_input.c", "target": "doomgeneric.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_joystick.c", "target": "SDL.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_joystick.c", "target": "SDL_joystick.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_joystick.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_joystick.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_joystick.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_joystick.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_joystick.c", "target": "d_event.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_joystick.c", "target": "i_joystick.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_joystick.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_joystick.c", "target": "m_config.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_joystick.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_main.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_main.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_minios_sound.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_minios_sound.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_minios_sound.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_minios_sound.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_minios_sound.c", "target": "doomfeatures.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_minios_sound.c", "target": "i_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_minios_sound.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_minios_sound.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_minios_sound.c", "target": "doomgeneric.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_scale.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_scale.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_scale.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_scale.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_scale.c", "target": "i_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_scale.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_scale.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_scale.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_sound.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_sound.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_sound.c", "target": "SDL_mixer.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_sound.c", "target": "config.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_sound.c", "target": "doomfeatures.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_sound.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_sound.c", "target": "gusconf.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_sound.c", "target": "i_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_sound.c", "target": "i_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_sound.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_sound.c", "target": "m_config.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_sound.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_swap.h", "target": "SDL_endian.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.c", "target": "stdarg.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.c", "target": "windows.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.c", "target": "unistd.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.c", "target": "SDL.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.c", "target": "config.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.c", "target": "deh_str.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.c", "target": "m_config.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.c", "target": "i_joystick.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.c", "target": "i_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.c", "target": "i_timer.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.c", "target": "i_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.c", "target": "CoreFoundation/CFUserNotification.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.h", "target": "d_ticcmd.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_system.h", "target": "d_event.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_timer.c", "target": "i_timer.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_timer.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_timer.c", "target": "doomgeneric.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_timer.c", "target": "stdarg.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_video.c", "target": "config.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_video.c", "target": "v_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_video.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_video.c", "target": "d_event.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_video.c", "target": "d_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_video.c", "target": "i_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_video.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_video.c", "target": "tables.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_video.c", "target": "doomkeys.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_video.c", "target": "doomgeneric.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_video.c", "target": "stdbool.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_video.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_video.c", "target": "fcntl.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_video.c", "target": "stdarg.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_video.c", "target": "sys/types.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/i_video.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/info.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/info.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/info.c", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/info.c", "target": "m_fixed.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/info.c", "target": "info.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/info.c", "target": "p_mobj.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/info.h", "target": "d_think.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_argv.c", "target": "ctype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_argv.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_argv.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_argv.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_argv.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_argv.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_argv.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_argv.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_argv.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_bbox.c", "target": "m_bbox.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_bbox.h", "target": "limits.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_bbox.h", "target": "m_fixed.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_cheat.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_cheat.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_cheat.c", "target": "m_cheat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_config.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_config.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_config.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_config.c", "target": "ctype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_config.c", "target": "errno.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_config.c", "target": "config.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_config.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_config.c", "target": "doomkeys.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_config.c", "target": "doomfeatures.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_config.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_config.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_config.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_config.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_config.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_controls.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_controls.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_controls.c", "target": "doomkeys.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_controls.c", "target": "m_config.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_controls.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_fixed.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_fixed.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_fixed.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_fixed.c", "target": "m_fixed.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "ctype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "doomkeys.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "dstrings.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "d_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "deh_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "i_swap.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "i_timer.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "i_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "v_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "r_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "hu_stuff.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "g_game.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "m_controls.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "p_saveg.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "s_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.c", "target": "m_menu.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_menu.h", "target": "d_event.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_misc.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_misc.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_misc.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_misc.c", "target": "ctype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_misc.c", "target": "errno.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_misc.c", "target": "windows.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_misc.c", "target": "io.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_misc.c", "target": "direct.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_misc.c", "target": "sys/stat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_misc.c", "target": "sys/types.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_misc.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_misc.c", "target": "deh_str.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_misc.c", "target": "i_swap.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_misc.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_misc.c", "target": "i_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_misc.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_misc.c", "target": "v_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_misc.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_misc.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_misc.h", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_misc.h", "target": "stdarg.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_misc.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/m_random.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/memio.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/memio.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/memio.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/memio.c", "target": "memio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/memio.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/net_client.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/net_client.h", "target": "d_ticcmd.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/net_client.h", "target": "sha1.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/net_client.h", "target": "net_defs.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/net_defs.h", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/net_defs.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/net_defs.h", "target": "d_ticcmd.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/net_defs.h", "target": "sha1.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/net_gui.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/net_io.h", "target": "net_defs.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/net_loop.h", "target": "net_defs.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/net_packet.h", "target": "net_defs.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/net_query.h", "target": "net_defs.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/net_sdl.h", "target": "net_defs.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_ceilng.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_ceilng.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_ceilng.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_ceilng.c", "target": "s_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_ceilng.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_ceilng.c", "target": "r_state.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_ceilng.c", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_doors.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_doors.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_doors.c", "target": "deh_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_doors.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_doors.c", "target": "s_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_doors.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_doors.c", "target": "r_state.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_doors.c", "target": "dstrings.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_doors.c", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_enemy.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_enemy.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_enemy.c", "target": "m_random.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_enemy.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_enemy.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_enemy.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_enemy.c", "target": "s_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_enemy.c", "target": "g_game.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_enemy.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_enemy.c", "target": "r_state.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_enemy.c", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_floor.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_floor.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_floor.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_floor.c", "target": "s_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_floor.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_floor.c", "target": "r_state.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_floor.c", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_inter.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_inter.c", "target": "dstrings.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_inter.c", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_inter.c", "target": "deh_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_inter.c", "target": "deh_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_inter.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_inter.c", "target": "m_random.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_inter.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_inter.c", "target": "am_map.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_inter.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_inter.c", "target": "s_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_inter.c", "target": "p_inter.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_lights.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_lights.c", "target": "m_random.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_lights.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_lights.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_lights.c", "target": "r_state.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_local.h", "target": "r_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_local.h", "target": "p_spec.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_map.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_map.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_map.c", "target": "deh_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_map.c", "target": "m_bbox.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_map.c", "target": "m_random.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_map.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_map.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_map.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_map.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_map.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_map.c", "target": "s_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_map.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_map.c", "target": "r_state.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_map.c", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_maputl.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_maputl.c", "target": "m_bbox.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_maputl.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_maputl.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_maputl.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_maputl.c", "target": "r_state.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_mobj.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_mobj.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_mobj.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_mobj.c", "target": "m_random.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_mobj.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_mobj.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_mobj.c", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_mobj.c", "target": "st_stuff.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_mobj.c", "target": "hu_stuff.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_mobj.c", "target": "s_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_mobj.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_mobj.h", "target": "tables.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_mobj.h", "target": "m_fixed.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_mobj.h", "target": "d_think.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_mobj.h", "target": "doomdata.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_mobj.h", "target": "info.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_plats.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_plats.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_plats.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_plats.c", "target": "m_random.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_plats.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_plats.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_plats.c", "target": "s_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_plats.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_plats.c", "target": "r_state.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_plats.c", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_pspr.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_pspr.c", "target": "d_event.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_pspr.c", "target": "deh_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_pspr.c", "target": "m_random.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_pspr.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_pspr.c", "target": "s_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_pspr.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_pspr.c", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_pspr.c", "target": "p_pspr.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_pspr.h", "target": "m_fixed.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_pspr.h", "target": "tables.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_pspr.h", "target": "info.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_saveg.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_saveg.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_saveg.c", "target": "dstrings.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_saveg.c", "target": "deh_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_saveg.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_saveg.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_saveg.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_saveg.c", "target": "p_saveg.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_saveg.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_saveg.c", "target": "g_game.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_saveg.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_saveg.c", "target": "r_state.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_saveg.h", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_setup.c", "target": "math.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_setup.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_setup.c", "target": "deh_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_setup.c", "target": "i_swap.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_setup.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_setup.c", "target": "m_bbox.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_setup.c", "target": "g_game.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_setup.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_setup.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_setup.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_setup.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_setup.c", "target": "s_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_setup.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_sight.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_sight.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_sight.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_sight.c", "target": "r_state.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_spec.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_spec.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_spec.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_spec.c", "target": "deh_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_spec.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_spec.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_spec.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_spec.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_spec.c", "target": "m_random.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_spec.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_spec.c", "target": "r_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_spec.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_spec.c", "target": "g_game.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_spec.c", "target": "s_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_spec.c", "target": "r_state.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_spec.c", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_switch.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_switch.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_switch.c", "target": "deh_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_switch.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_switch.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_switch.c", "target": "g_game.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_switch.c", "target": "s_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_switch.c", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_switch.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_switch.c", "target": "r_state.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_telept.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_telept.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_telept.c", "target": "s_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_telept.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_telept.c", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_telept.c", "target": "r_state.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_tick.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_tick.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_tick.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_user.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_user.c", "target": "d_event.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_user.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/p_user.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_bsp.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_bsp.c", "target": "m_bbox.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_bsp.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_bsp.c", "target": "r_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_bsp.c", "target": "r_plane.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_bsp.c", "target": "r_things.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_bsp.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_bsp.c", "target": "r_state.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_data.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_data.c", "target": "deh_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_data.c", "target": "i_swap.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_data.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_data.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_data.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_data.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_data.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_data.c", "target": "r_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_data.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_data.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_data.c", "target": "r_sky.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_data.c", "target": "r_data.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_data.h", "target": "r_defs.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_data.h", "target": "r_state.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_defs.h", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_defs.h", "target": "m_fixed.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_defs.h", "target": "d_think.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_defs.h", "target": "p_mobj.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_defs.h", "target": "i_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_defs.h", "target": "v_patch.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_draw.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_draw.c", "target": "deh_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_draw.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_draw.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_draw.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_draw.c", "target": "r_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_draw.c", "target": "v_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_draw.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_local.h", "target": "tables.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_local.h", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_local.h", "target": "r_data.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_local.h", "target": "r_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_local.h", "target": "r_bsp.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_local.h", "target": "r_segs.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_local.h", "target": "r_plane.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_local.h", "target": "r_data.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_local.h", "target": "r_things.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_local.h", "target": "r_draw.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_main.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_main.c", "target": "math.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_main.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_main.c", "target": "d_loop.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_main.c", "target": "m_bbox.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_main.c", "target": "m_menu.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_main.c", "target": "r_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_main.c", "target": "r_sky.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_main.h", "target": "d_player.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_main.h", "target": "r_data.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_plane.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_plane.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_plane.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_plane.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_plane.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_plane.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_plane.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_plane.c", "target": "r_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_plane.c", "target": "r_sky.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_plane.h", "target": "r_data.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_segs.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_segs.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_segs.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_segs.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_segs.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_segs.c", "target": "r_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_segs.c", "target": "r_sky.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_sky.c", "target": "m_fixed.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_sky.c", "target": "r_data.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_sky.c", "target": "r_sky.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_state.h", "target": "d_player.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_state.h", "target": "r_data.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_things.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_things.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_things.c", "target": "deh_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_things.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_things.c", "target": "i_swap.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_things.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_things.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_things.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_things.c", "target": "r_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/r_things.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/s_sound.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/s_sound.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/s_sound.c", "target": "i_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/s_sound.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/s_sound.c", "target": "doomfeatures.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/s_sound.c", "target": "deh_str.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/s_sound.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/s_sound.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/s_sound.c", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/s_sound.c", "target": "s_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/s_sound.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/s_sound.c", "target": "m_random.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/s_sound.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/s_sound.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/s_sound.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/s_sound.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/s_sound.h", "target": "p_mobj.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/s_sound.h", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/sha1.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/sha1.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/sha1.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/sha1.c", "target": "assert.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/sha1.c", "target": "i_swap.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/sha1.c", "target": "sha1.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/sha1.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/sounds.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/sounds.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/sounds.c", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/sounds.h", "target": "i_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_lib.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_lib.c", "target": "ctype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_lib.c", "target": "deh_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_lib.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_lib.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_lib.c", "target": "v_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_lib.c", "target": "i_swap.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_lib.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_lib.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_lib.c", "target": "st_stuff.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_lib.c", "target": "st_lib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_lib.c", "target": "r_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_lib.h", "target": "r_defs.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "i_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "m_random.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "deh_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "deh_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "doomkeys.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "g_game.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "st_stuff.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "st_lib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "r_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "p_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "p_inter.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "am_map.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "m_cheat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "s_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "v_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "dstrings.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.c", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.h", "target": "d_event.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/st_stuff.h", "target": "m_cheat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/statdump.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/statdump.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/statdump.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/statdump.c", "target": "d_player.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/statdump.c", "target": "d_mode.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/statdump.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/statdump.c", "target": "statdump.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/tables.c", "target": "tables.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/tables.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/tables.h", "target": "m_fixed.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/v_video.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/v_video.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/v_video.c", "target": "math.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/v_video.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/v_video.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/v_video.c", "target": "deh_str.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/v_video.c", "target": "i_swap.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/v_video.c", "target": "i_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/v_video.c", "target": "m_bbox.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/v_video.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/v_video.c", "target": "v_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/v_video.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/v_video.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/v_video.c", "target": "config.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/v_video.c", "target": "png.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/v_video.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/v_video.h", "target": "v_patch.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_checksum.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_checksum.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_checksum.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_checksum.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_checksum.c", "target": "sha1.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_checksum.c", "target": "w_checksum.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_checksum.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_checksum.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_file.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_file.c", "target": "config.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_file.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_file.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_file.c", "target": "w_file.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_file.h", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_file.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_file_stdc.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_file_stdc.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_file_stdc.c", "target": "w_file.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_file_stdc.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_main.c", "target": "doomfeatures.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_main.c", "target": "d_iwad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_main.c", "target": "m_argv.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_main.c", "target": "w_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_main.c", "target": "w_merge.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_main.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_main.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_wad.c", "target": "ctype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_wad.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_wad.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_wad.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_wad.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_wad.c", "target": "config.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_wad.c", "target": "d_iwad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_wad.c", "target": "i_swap.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_wad.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_wad.c", "target": "i_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_wad.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_wad.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_wad.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_wad.h", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_wad.h", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_wad.h", "target": "d_mode.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/w_wad.h", "target": "w_file.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/wi_stuff.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/wi_stuff.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/wi_stuff.c", "target": "m_misc.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/wi_stuff.c", "target": "m_random.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/wi_stuff.c", "target": "deh_main.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/wi_stuff.c", "target": "i_swap.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/wi_stuff.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/wi_stuff.c", "target": "w_wad.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/wi_stuff.c", "target": "g_game.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/wi_stuff.c", "target": "r_local.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/wi_stuff.c", "target": "s_sound.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/wi_stuff.c", "target": "doomstat.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/wi_stuff.c", "target": "sounds.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/wi_stuff.c", "target": "v_video.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/wi_stuff.c", "target": "wi_stuff.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/wi_stuff.h", "target": "doomdef.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/z_zone.c", "target": "z_zone.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/z_zone.c", "target": "i_system.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/z_zone.c", "target": "doomtype.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "progs/doomgeneric/z_zone.h", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "sched.c", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "sched.c", "target": "sched.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "sched.c", "target": "bootdefs.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "sched.c", "target": "vga_fb.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "sched.h", "target": "stdint.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "test_http_server.py", "target": "sys"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "test_http_server.py", "target": "time"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "test_http_server.py", "target": "http.server"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "test_http_server.py", "target": "fcntl"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "test_http_server.py", "target": "struct"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls.c", "target": "tls_port.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls.c", "target": "tls.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls.c", "target": "tls_roots.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_crypto.c", "target": "tls_port.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_crypto.c", "target": "tls.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_port.h", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_port.h", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_port.h", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_port.h", "target": "time.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_port.h", "target": "unistd.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_port.h", "target": "fcntl.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_port.h", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_port.h", "target": "net.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_test.c", "target": "stdio.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_test.c", "target": "stdlib.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_test.c", "target": "string.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_test.c", "target": "unistd.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_test.c", "target": "sys/socket.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_test.c", "target": "sys/select.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_test.c", "target": "netinet/in.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_test.c", "target": "arpa/inet.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_test.c", "target": "tls_port.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_test.c", "target": "tls.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_test.c", "target": "tls_test_roots.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_test.py", "target": "os"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_test.py", "target": "re"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_test.py", "target": "shlex"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_test.py", "target": "socket"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_test.py", "target": "ssl"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_test.py", "target": "subprocess"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_test.py", "target": "sys"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_test.py", "target": "threading"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_test.py", "target": "time"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_test.py", "target": "datetime"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_x509.c", "target": "tls_port.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "tls_x509.c", "target": "tls.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "vga_fb.c", "target": "kernel.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "vga_fb.c", "target": "vga_fb.h"}, {"confidence": "EXTRACTED", "relation": "imports", "source": "vga_fb.h", "target": "stdint.h"}, {"confidence": "EXTRACTED", "relation": "resolved_imports", "source": "mcp/minios_mcp.py", "target": "mcp/minios_addons.py"}], "generator": "readmenator", "metadata": {"edge_count": 2770, "file_count": 258, "language_count": 6, "symbol_count": 3644}, "nodes": [{"doc": "_*_ coding: utf8 _*_", "id": "app.py", "kind": "module", "label": "app.py", "language": "py", "sha256": "57b21bdb023585b8", "symbol_count": 0, "symbols": []}, {"doc": "Block device layer for MiniFS.", "id": "block.c", "kind": "module", "label": "block.c", "language": "c", "sha256": "a7a2fca40a207be9", "symbol_count": 8, "symbols": [{"kind": "function", "line": 11, "name": "block_init", "signature": "void block_init(void)"}, {"kind": "function", "line": 17, "name": "block_set_base", "signature": "void block_set_base(unsigned int lba_base)"}, {"kind": "function", "line": 21, "name": "block_read", "signature": "int block_read(unsigned int block_num, void *buf)"}, {"kind": "function", "line": 26, "name": "block_write", "signature": "int block_write(unsigned int block_num, const void *buf)"}, {"kind": "function", "line": 31, "name": "block_read_multi", "signature": "int block_read_multi(unsigned int block_num, unsigned int count, void *buf)"}, {"kind": "function", "line": 36, "name": "block_write_multi", "signature": "int block_write_multi(unsigned int block_num, unsigned int count, const void *buf)"}, {"kind": "function", "line": 41, "name": "block_flush", "signature": "void block_flush(void)"}, {"kind": "function", "line": 43, "name": "block_total", "signature": "unsigned int block_total(void)"}]}, {"doc": "ifndef BLOCK_H define BLOCK_H Block device abstraction for MiniFS. Maps 4096-byte logical blocks to 512-byte IDE sectors.", "id": "block.h", "kind": "module", "label": "block.h", "language": "h", "sha256": "d65f42d353cea321", "symbol_count": 4, "symbols": [{"kind": "macro", "line": 2, "name": "BLOCK_H"}, {"kind": "macro", "line": 6, "name": "BLOCK_SIZE"}, {"kind": "macro", "line": 8, "name": "BLOCK_SHIFT"}, {"kind": "macro", "line": 9, "name": "SECTORS_PER_BLOCK"}]}, {"doc": "bootdefs.h - centralized configuration for the MiniOS two-stage boot path.", "id": "bootdefs.h", "kind": "module", "label": "bootdefs.h", "language": "h", "sha256": "c58a244f9e96622f", "symbol_count": 96, "symbols": [{"kind": "macro", "line": 32, "name": "BOOTDEFS_H"}, {"kind": "macro", "line": 33, "name": "SECTOR_BYTES"}, {"kind": "macro", "line": 35, "name": "SECTOR_PARAGRAPH_SHIFT"}, {"kind": "macro", "line": 36, "name": "SECTOR_DWORD_SHIFT"}, {"kind": "macro", "line": 37, "name": "BOOT_SIGNATURE"}, {"kind": "macro", "line": 39, "name": "BOOT_SIGNATURE_BYTES"}, {"kind": "macro", "line": 40, "name": "BOOT_SEG_NULL"}, {"kind": "macro", "line": 42, "name": "BOOT_STACK_TOP"}, {"kind": "macro", "line": 43, "name": "BOOT_DAP_ADDR"}, {"kind": "macro", "line": 45, "name": "BOOT_DAP_SIZE"}, {"kind": "macro", "line": 46, "name": "BOOT_DAP_OFF_COUNT"}, {"kind": "macro", "line": 47, "name": "BOOT_DAP_OFF_OFFSET"}, {"kind": "macro", "line": 48, "name": "BOOT_DAP_OFF_SEGMENT"}, {"kind": "macro", "line": 49, "name": "BOOT_DAP_OFF_LBA_LO"}, {"kind": "macro", "line": 50, "name": "BOOT_DAP_OFF_LBA_HI"}, {"kind": "macro", "line": 51, "name": "BOOT_DRIVE_ADDR"}, {"kind": "macro", "line": 52, "name": "BOOT_KASLR_ADDR"}, {"kind": "macro", "line": 53, "name": "BOOT_STAGE2_LBA"}, {"kind": "macro", "line": 55, "name": "BOOT_STAGE2_SECTORS"}, {"kind": "macro", "line": 56, "name": "BOOT_STAGE2_ADDR"}, {"kind": "macro", "line": 57, "name": "BOOT_STAGE2_SEG"}, {"kind": "macro", "line": 58, "name": "BOOT_KERNEL_LBA"}, {"kind": "macro", "line": 60, "name": "BOOT_KERNEL_BUF_ADDR"}, {"kind": "macro", "line": 61, "name": "BOOT_KERNEL_BUF_SEG"}, {"kind": "macro", "line": 62, "name": "BOOT_KERNEL_PHYS_ADDR"}, {"kind": "macro", "line": 63, "name": "BOOT_CHUNK_SECTORS"}, {"kind": "macro", "line": 65, "name": "BOOT_BIOS_MAX_SECTORS"}, {"kind": "macro", "line": 66, "name": "BOOT_PM_STACK_TOP"}, {"kind": "macro", "line": 68, "name": "BIOS_DISK_INT"}, {"kind": "macro", "line": 70, "name": "BIOS_DISK_EXT_CHECK"}, {"kind": "macro", "line": 71, "name": "BIOS_DISK_EXT_REQ_MAGIC"}, {"kind": "macro", "line": 72, "name": "BIOS_DISK_EXT_ACK_MAGIC"}, {"kind": "macro", "line": 73, "name": "BIOS_DISK_EXT_PACKET_BIT"}, {"kind": "macro", "line": 74, "name": "BIOS_DISK_READ_EXT"}, {"kind": "macro", "line": 75, "name": "BIOS_VIDEO_INT"}, {"kind": "macro", "line": 77, "name": "BIOS_VIDEO_TTY_WRITE"}, {"kind": "macro", "line": 78, "name": "BIOS_VIDEO_TTY_ATTR"}, {"kind": "macro", "line": 79, "name": "BIOS_VIDEO_SET_MODE"}, {"kind": "macro", "line": 80, "name": "A20_CONTROL_PORT"}, {"kind": "macro", "line": 82, "name": "A20_ENABLE_BIT"}, {"kind": "macro", "line": 83, "name": "A20_RESET_CLEAR_MASK"}, {"kind": "macro", "line": 84, "name": "CR0_PE"}, {"kind": "macro", "line": 86, "name": "CR0_PE_CLEAR_MASK"}, {"kind": "macro", "line": 87, "name": "CR0_PG"}, {"kind": "macro", "line": 88, "name": "CR4_PAE"}, {"kind": "macro", "line": 89, "name": "MSR_EFER"}, {"kind": "macro", "line": 91, "name": "EFER_LME"}, {"kind": "macro", "line": 92, "name": "EFER_NXE"}, {"kind": "macro", "line": 93, "name": "GDT32_CODE32_SEL"}, {"kind": "macro", "line": 95, "name": "GDT32_DATA32_SEL"}, {"kind": "macro", "line": 96, "name": "GDT32_CODE16_SEL"}, {"kind": "macro", "line": 97, "name": "GDT32_DATA16_SEL"}, {"kind": "macro", "line": 98, "name": "GDT32_DESC_NULL"}, {"kind": "macro", "line": 100, "name": "GDT32_DESC_CODE32"}, {"kind": "macro", "line": 101, "name": "GDT32_DESC_DATA32"}, {"kind": "macro", "line": 102, "name": "GDT32_DESC_CODE16"}, {"kind": "macro", "line": 103, "name": "GDT32_DESC_DATA16"}, {"kind": "macro", "line": 104, "name": "GDT64_ADDR"}, {"kind": "macro", "line": 106, "name": "GDT64_BYTES"}, {"kind": "macro", "line": 107, "name": "GDT64_CODE_SEL"}, {"kind": "macro", "line": 108, "name": "GDT64_DATA_SEL"}, {"kind": "macro", "line": 109, "name": "GDT64_USER_DATA_SEL"}, {"kind": "macro", "line": 110, "name": "GDT64_USER_CODE_SEL"}, {"kind": "macro", "line": 111, "name": "GDT64_DESC_NULL"}, {"kind": "macro", "line": 112, "name": "GDT64_DESC_CODE"}, {"kind": "macro", "line": 113, "name": "GDT64_DESC_DATA"}, {"kind": "macro", "line": 114, "name": "GDT64_DESC_UDATA"}, {"kind": "macro", "line": 115, "name": "GDT64_DESC_UCODE"}, {"kind": "macro", "line": 116, "name": "PT_PML4_ADDR"}, {"kind": "macro", "line": 118, "name": "PT_PDPT_ADDR"}, {"kind": "macro", "line": 119, "name": "PT_PD_ADDR"}, {"kind": "macro", "line": 120, "name": "PT_USER0_ADDR"}, {"kind": "macro", "line": 121, "name": "PT_USER1_ADDR"}, {"kind": "macro", "line": 122, "name": "PT_ZERO_DWORDS"}, {"kind": "macro", "line": 123, "name": "PT_FLAGS_PRESENT_RW"}, {"kind": "macro", "line": 124, "name": "PT_FLAGS_PRESENT_RW_PS"}, {"kind": "macro", "line": 125, "name": "PT_FLAGS_PS"}, {"kind": "macro", "line": 126, "name": "PT_FLAGS_USER"}, {"kind": "macro", "line": 127, "name": "PT_PD_ENTRIES"}, {"kind": "macro", "line": 128, "name": "PT_PD_ENTRY_BYTES"}, {"kind": "macro", "line": 129, "name": "PT_PD_PAGE_BYTES"}, {"kind": "macro", "line": 130, "name": "PT_PD_INDEX_SHIFT"}, {"kind": "macro", "line": 131, "name": "PT_FILL_START_INDEX"}, {"kind": "macro", "line": 132, "name": "PT_FILL_START_ADDR"}, {"kind": "macro", "line": 133, "name": "PT_FILL_ENTRIES"}, {"kind": "macro", "line": 142, "name": "PT_USER_TABLES_ADDR"}, {"kind": "macro", "line": 143, "name": "PT_USER_TABLES_BYTES"}, {"kind": "macro", "line": 150, "name": "KASLR_MIN_ADDR"}, {"kind": "macro", "line": 151, "name": "KASLR_ALIGN_SHIFT"}, {"kind": "macro", "line": 152, "name": "KASLR_MAX_UNITS"}, {"kind": "macro", "line": 153, "name": "CMOS_INDEX_PORT"}, {"kind": "macro", "line": 155, "name": "CMOS_DATA_PORT"}, {"kind": "macro", "line": 156, "name": "CMOS_NMI_DISABLE"}, {"kind": "macro", "line": 157, "name": "CMOS_REG_SECONDS"}, {"kind": "macro", "line": 158, "name": "CMOS_REG_MINUTES"}, {"kind": "macro", "line": 159, "name": "CMOS_REG_HOURS"}]}, {"id": "bootloader.c", "kind": "module", "label": "bootloader.c", "language": "c", "sha256": "7bd57cae9f873eb1", "symbol_count": 2, "symbols": [{"doc": "\"gdt_start:\\n\" \" .quad 0\\n\" \" .quad 0x00CF9A000000FFFF\\n\" \" .quad 0x00CF92000000FFFF\\n\" \"gdt_end:\\n\" \".global gdt32_ptr\\n\" \"gdt32_ptr:\\n\" \" .word gdt_end - gdt_start - 1\\n\" \" .long gdt_start\\n\" ); __asm__(\"boot_drive: .byte 0\\n\"); /* Number of 512-byte sectors of kernel to load from LBA 1 to phys 0x10000. define KSECTORS 508", "kind": "function", "line": 20, "name": "main", "signature": "void main(void)"}, {"kind": "macro", "line": 19, "name": "KSECTORS"}]}, {"id": "ctx_sw.S", "kind": "module", "label": "ctx_sw.S", "language": "S", "sha256": "7f969c94ef8d2c7f", "symbol_count": 3, "symbols": [{"kind": "function", "line": 21, "name": "switch_to_next"}, {"kind": "function", "line": 26, "name": "switch_to"}, {"kind": "function", "line": 103, "name": "user_trampoline"}]}, {"id": "cvm_host.c", "kind": "module", "label": "cvm_host.c", "language": "c", "sha256": "78ca9036ed84aecc", "symbol_count": 45, "symbols": [{"kind": "function", "line": 18, "name": "n_strcmp", "signature": "static int64_t n_strcmp(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 24, "name": "n_strncmp", "signature": "static int64_t n_strncmp(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 31, "name": "n_strcpy", "signature": "static int64_t n_strcpy(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 37, "name": "n_strncpy", "signature": "static int64_t n_strncpy(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 44, "name": "n_memcpy", "signature": "static int64_t n_memcpy(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 51, "name": "n_memset", "signature": "static int64_t n_memset(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 57, "name": "n_memmove", "signature": "static int64_t n_memmove(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 64, "name": "n_memcmp", "signature": "static int64_t n_memcmp(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 71, "name": "n_strchr", "signature": "static int64_t n_strchr(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 77, "name": "n_strstr", "signature": "static int64_t n_strstr(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 84, "name": "n_malloc", "signature": "static int64_t n_malloc(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 89, "name": "n_free", "signature": "static int64_t n_free(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 94, "name": "n_calloc", "signature": "static int64_t n_calloc(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 102, "name": "n_realloc", "signature": "static int64_t n_realloc(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 110, "name": "n_exit", "signature": "static int64_t n_exit(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 117, "name": "n_fopen", "signature": "static int64_t n_fopen(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 124, "name": "n_fclose", "signature": "static int64_t n_fclose(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 130, "name": "n_fread", "signature": "static int64_t n_fread(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 137, "name": "n_fwrite", "signature": "static int64_t n_fwrite(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 144, "name": "n_fseek", "signature": "static int64_t n_fseek(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 150, "name": "n_ftell", "signature": "static int64_t n_ftell(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 156, "name": "n_rewind", "signature": "static int64_t n_rewind(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 163, "name": "n_fputs", "signature": "static int64_t n_fputs(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 169, "name": "n_fputc", "signature": "static int64_t n_fputc(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 175, "name": "n_fgetc", "signature": "static int64_t n_fgetc(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 181, "name": "n_ungetc", "signature": "static int64_t n_ungetc(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 187, "name": "n_fflush", "signature": "static int64_t n_fflush(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 193, "name": "n_putchar", "signature": "static int64_t n_putchar(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 200, "name": "n_write", "signature": "static int64_t n_write(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 209, "name": "n_read", "signature": "static int64_t n_read(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 224, "name": "n_puts", "signature": "static int64_t n_puts(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 232, "name": "n_atol", "signature": "static int64_t n_atol(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 245, "name": "n_strtol", "signature": "static int64_t n_strtol(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 258, "name": "n_stderr_addr", "signature": "static int64_t n_stderr_addr(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 263, "name": "n_stdout_addr", "signature": "static int64_t n_stdout_addr(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 268, "name": "n_stdin_addr", "signature": "static int64_t n_stdin_addr(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 273, "name": "kout_char", "signature": "static void kout_char(void *ctx, char c)"}, {"kind": "function", "line": 279, "name": "kout_uint", "signature": "static void kout_uint(void *ctx, unsigned long long v, int base, int upper)"}, {"kind": "function", "line": 292, "name": "kformat", "signature": "static void kformat(void *ctx, const char *fmt, uint64_t *argv, int argc)"}, {"kind": "function", "line": 358, "name": "n_fprintf", "signature": "static int64_t n_fprintf(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 365, "name": "n_printf", "signature": "static int64_t n_printf(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 372, "name": "n_sprintf", "signature": "static int64_t n_sprintf(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 380, "name": "n_snprintf", "signature": "static int64_t n_snprintf(void *vm, int ac, uint64_t *av)"}, {"kind": "function", "line": 388, "name": "register_host_natives", "signature": "static void register_host_natives(CvmState *vm)"}, {"kind": "function", "line": 433, "name": "cvm_main", "signature": "int cvm_main(int argc, char **argv)"}]}, {"id": "gen_minifs.py", "kind": "module", "label": "gen_minifs.py", "language": "py", "sha256": "e7d4cac4d07804fb", "symbol_count": 0, "symbols": []}, {"doc": "IDE/ATA PIO driver for MiniOS.", "id": "ide.c", "kind": "module", "label": "ide.c", "language": "c", "sha256": "bcf697e3082b9fea", "symbol_count": 14, "symbols": [{"kind": "function", "line": 11, "name": "ide_delay", "signature": "static void ide_delay(void)"}, {"kind": "function", "line": 17, "name": "ide_read_status", "signature": "static unsigned char ide_read_status(void)"}, {"kind": "function", "line": 21, "name": "ide_wait_not_busy", "signature": "static int ide_wait_not_busy(unsigned int timeout)"}, {"kind": "function", "line": 29, "name": "ide_wait_drq", "signature": "static int ide_wait_drq(unsigned int timeout)"}, {"kind": "function", "line": 40, "name": "ide_select_drive", "signature": "static void ide_select_drive(unsigned char drive)"}, {"kind": "function", "line": 46, "name": "ide_soft_reset", "signature": "static void ide_soft_reset(void)"}, {"kind": "function", "line": 53, "name": "ide_identify", "signature": "static int ide_identify(void)"}, {"kind": "function", "line": 78, "name": "ide_init", "signature": "void ide_init(void)"}, {"kind": "function", "line": 96, "name": "ide_present", "signature": "int ide_present(void)"}, {"kind": "function", "line": 98, "name": "ide_total_sectors", "signature": "unsigned int ide_total_sectors(void)"}, {"kind": "function", "line": 99, "name": "ide_read_sectors", "signature": "int ide_read_sectors(unsigned int lba, unsigned int count, void *buf)"}, {"kind": "function", "line": 129, "name": "ide_write_sectors", "signature": "int ide_write_sectors(unsigned int lba, unsigned int count, const void *buf)"}, {"kind": "function", "line": 162, "name": "ide_read_sector", "signature": "int ide_read_sector(unsigned int lba, void *buf)"}, {"kind": "function", "line": 166, "name": "ide_write_sector", "signature": "int ide_write_sector(unsigned int lba, const void *buf)"}]}, {"doc": "ifndef IDE_H define IDE_H IDE/ATA PIO driver for MiniOS.", "id": "ide.h", "kind": "module", "label": "ide.h", "language": "h", "sha256": "2f4c64dd2da4cd2f", "symbol_count": 27, "symbols": [{"kind": "macro", "line": 2, "name": "IDE_H"}, {"kind": "macro", "line": 9, "name": "IDE_PRIMARY_BASE"}, {"kind": "macro", "line": 10, "name": "IDE_PRIMARY_CTRL"}, {"kind": "macro", "line": 13, "name": "IDE_REG_DATA"}, {"kind": "macro", "line": 14, "name": "IDE_REG_ERROR"}, {"kind": "macro", "line": 15, "name": "IDE_REG_SECCOUNT"}, {"kind": "macro", "line": 16, "name": "IDE_REG_LBA_LO"}, {"kind": "macro", "line": 17, "name": "IDE_REG_LBA_MID"}, {"kind": "macro", "line": 18, "name": "IDE_REG_LBA_HI"}, {"kind": "macro", "line": 19, "name": "IDE_REG_DRIVE"}, {"kind": "macro", "line": 20, "name": "IDE_REG_STATUS"}, {"kind": "macro", "line": 21, "name": "IDE_REG_ALTSTATUS"}, {"kind": "macro", "line": 24, "name": "IDE_STATUS_ERR"}, {"kind": "macro", "line": 25, "name": "IDE_STATUS_DRQ"}, {"kind": "macro", "line": 26, "name": "IDE_STATUS_SRV"}, {"kind": "macro", "line": 27, "name": "IDE_STATUS_DF"}, {"kind": "macro", "line": 28, "name": "IDE_STATUS_RDY"}, {"kind": "macro", "line": 29, "name": "IDE_STATUS_BSY"}, {"kind": "macro", "line": 32, "name": "IDE_CMD_READ"}, {"kind": "macro", "line": 33, "name": "IDE_CMD_WRITE"}, {"kind": "macro", "line": 34, "name": "IDE_CMD_IDENTIFY"}, {"kind": "macro", "line": 35, "name": "IDE_CMD_FLUSH"}, {"kind": "macro", "line": 38, "name": "IDE_DRIVE_LBA"}, {"kind": "macro", "line": 39, "name": "IDE_DRIVE_MASTER"}, {"kind": "macro", "line": 40, "name": "IDE_DRIVE_SLAVE"}, {"kind": "macro", "line": 43, "name": "IDE_TIMEOUT"}, {"kind": "macro", "line": 46, "name": "IDE_SECTOR_SIZE"}]}, {"id": "install.sh", "kind": "module", "label": "install.sh", "language": "sh", "sha256": "c907d80fd6734993", "symbol_count": 0, "symbols": []}, {"id": "isr_stubs.S", "kind": "module", "label": "isr_stubs.S", "language": "S", "sha256": "08daba5cc3855d29", "symbol_count": 24, "symbols": [{"kind": "function", "line": 67, "name": "tf_rax"}, {"kind": "function", "line": 68, "name": "tf_rbx"}, {"kind": "function", "line": 69, "name": "tf_rcx"}, {"kind": "function", "line": 70, "name": "tf_rdx"}, {"kind": "function", "line": 71, "name": "tf_rsi"}, {"kind": "function", "line": 72, "name": "tf_rdi"}, {"kind": "function", "line": 73, "name": "tf_rbp"}, {"kind": "function", "line": 74, "name": "tf_r8"}, {"kind": "function", "line": 75, "name": "tf_r9"}, {"kind": "function", "line": 76, "name": "tf_r10"}, {"kind": "function", "line": 77, "name": "tf_r11"}, {"kind": "function", "line": 78, "name": "tf_r12"}, {"kind": "function", "line": 79, "name": "tf_r13"}, {"kind": "function", "line": 80, "name": "tf_r14"}, {"kind": "function", "line": 81, "name": "tf_r15"}, {"kind": "function", "line": 82, "name": "tf_rip"}, {"kind": "function", "line": 83, "name": "tf_cs"}, {"kind": "function", "line": 84, "name": "tf_rflags"}, {"kind": "function", "line": 85, "name": "tf_rsp"}, {"kind": "function", "line": 86, "name": "tf_ss"}, {"kind": "function", "line": 87, "name": "tf_vector"}, {"kind": "function", "line": 88, "name": "tf_errcode"}, {"kind": "function", "line": 96, "name": "isr_common"}, {"kind": "function", "line": 181, "name": "isr_stub_table"}]}, {"doc": "include \"kernel.h\" include \"net.h\" include \"tls.h\" include \"bootdefs.h\" include \"minifs.h\" include \"ide.h\" include \"block.h\" include \"sched.h\" include \"vga_fb.h\" ================================================================", "id": "kernel.c", "kind": "module", "label": "kernel.c", "language": "c", "sha256": "cc07b20a608f2aa0", "symbol_count": 253, "symbols": [{"kind": "struct", "line": 388, "name": "Block"}, {"kind": "struct", "line": 1389, "name": "snctx"}, {"kind": "struct", "line": 1595, "name": "exec_range"}, {"kind": "struct", "line": 2079, "name": "kiovec"}, {"kind": "function", "line": 26, "name": "serial_tx_ready", "signature": "static int serial_tx_ready(void)"}, {"kind": "function", "line": 28, "name": "serial_rx_ready", "signature": "static int serial_rx_ready(void)"}, {"kind": "function", "line": 29, "name": "serial_putc", "signature": "void serial_putc(char c)"}, {"kind": "function", "line": 34, "name": "serial_puts", "signature": "void serial_puts(const char *s)"}, {"kind": "function", "line": 35, "name": "serial_available", "signature": "int serial_available(void)"}, {"kind": "function", "line": 37, "name": "serial_getc", "signature": "int serial_getc(void)"}, {"kind": "function", "line": 55, "name": "vga_offset", "signature": "static inline unsigned vga_offset(int x, int y)"}, {"kind": "function", "line": 57, "name": "vga_clear", "signature": "void vga_clear(void)"}, {"kind": "function", "line": 68, "name": "vga_set_cursor", "signature": "void vga_set_cursor(int x, int y)"}, {"kind": "function", "line": 88, "name": "vga_scroll", "signature": "void vga_scroll(void)"}, {"kind": "function", "line": 107, "name": "vga_newline", "signature": "void vga_newline(void)"}, {"doc": "--- Console scrollback ring ---- The ring stores complete text lines that have scrolled off the top of the 25-row VGA screen. Each line is VGA_COLS bytes (the character cell only; colour is regenerated as the default attribute on re-display). The ring is heap-allocated on first use and is a circular buffer of SCROLLBACK_ROWS slots; `clear` resets the cursor (it does not free the ring, which would * be re-allocated again the next time a line scrolls). define SCROLLBACK_ROWS 4096", "kind": "function", "line": 123, "name": "sb_init", "signature": "static void sb_init(void)"}, {"doc": "Called from vga_scroll() immediately before row 0 is overwritten: copies * the row that is about to leave the screen into the ring.", "kind": "function", "line": 132, "name": "sb_capture_row0", "signature": "static void sb_capture_row0(void)"}, {"doc": "Toggle the hardware text cursor. bit 5 of VGA index 0x0A disables the * cursor; clearing it brings the cursor back.", "kind": "function", "line": 144, "name": "vga_cursor_enable", "signature": "void vga_cursor_enable(int on)"}, {"kind": "function", "line": 150, "name": "vga_raw_space", "signature": "static void vga_raw_space(void)"}, {"kind": "function", "line": 171, "name": "redir_grow", "signature": "static int redir_grow(void)"}, {"kind": "function", "line": 181, "name": "vga_putc", "signature": "void vga_putc(char c)"}, {"kind": "function", "line": 223, "name": "vga_puts", "signature": "void vga_puts(const char *s)"}, {"doc": "Raw keyboard mode for DOOM: when enabled, PS/2 make/break codes are pushed into a separate queue so the caller sees both press and release * events. The raw queue stores bytes with bit 7 set for break codes. #define KBD_RAW_LEN 64 static unsigned char kbd_raw[KBD_RAW_LEN]; static int kbd_raw_head, kbd_raw_tail; static int kbd_raw_mode; /* 1 = raw mode (DOOM), 0 = translated mode (shell)", "kind": "function", "line": 277, "name": "kbd_q_push", "signature": "static void kbd_q_push(unsigned char c)"}, {"kind": "function", "line": 284, "name": "kbd_raw_push", "signature": "static void kbd_raw_push(unsigned char c)"}, {"kind": "function", "line": 291, "name": "kbd_q_empty", "signature": "static int kbd_q_empty(void)"}, {"kind": "function", "line": 293, "name": "kbd_q_pop", "signature": "static int kbd_q_pop(void)"}, {"kind": "function", "line": 300, "name": "kbd_available", "signature": "int kbd_available(void)"}, {"kind": "function", "line": 306, "name": "kbd_read", "signature": "int kbd_read(void)"}, {"doc": "Build 4 KB page tables for the whole user window and enable the NX bit (EFER.NXE). Every user page is present, writable, user-accessible and non-executable; the ELF loader later clears NX on the pages a program's executable segments occupy, so a ring-3 program can only execute the text it actually contains. The page tables live in the dedicated PT_USER_TABLES_ADDR zone, never in the heap (the ramdisk data area is heap-backed and its final size is only discovered at boot, so heap-resident tables could be overwritten by a later reservation); that zone stays supervisor, so a ring-3 program cannot reach the tables that govern it. The per-page isolation replaces the coarse 2 MB leaves the boot path installs, so kernel image, heap, page tables, VGA and MMIO stay supervisor, and the U/S bit stops a ring-3 program from reading or writing kernel * memory.", "kind": "function", "line": 450, "name": "mm_setup_protections", "signature": "static void mm_setup_protections(void)"}, {"doc": "Mark the pages of a loaded executable segment as executable (clear NX) and flush the TLB so the new permissions take effect before the program * runs.", "kind": "function", "line": 513, "name": "mm_user_set_exec", "signature": "static void mm_user_set_exec(unsigned long start, unsigned long end)"}, {"kind": "function", "line": 520, "name": "kallocator_init", "signature": "void kallocator_init(void)"}, {"kind": "function", "line": 527, "name": "kmalloc", "signature": "void *kmalloc(unsigned long size)"}, {"kind": "function", "line": 564, "name": "kfree", "signature": "void kfree(void *ptr)"}, {"kind": "function", "line": 599, "name": "kcalloc", "signature": "void *kcalloc(unsigned long nmemb, unsigned long size)"}, {"kind": "function", "line": 606, "name": "krealloc", "signature": "void *krealloc(void *ptr, unsigned long size)"}, {"doc": "================================================================ String functions * ================================================================", "kind": "function", "line": 637, "name": "kstrlen", "signature": "unsigned long kstrlen(const char *s)"}, {"kind": "function", "line": 643, "name": "kstrcpy", "signature": "char *kstrcpy(char *dst, const char *src)"}, {"kind": "function", "line": 649, "name": "kstrncpy", "signature": "char *kstrncpy(char *dst, const char *src, unsigned long n)"}, {"kind": "function", "line": 655, "name": "kstrncat", "signature": "char *kstrncat(char *dst, const char *src, unsigned long n)"}, {"kind": "function", "line": 663, "name": "kstrcmp", "signature": "int kstrcmp(const char *a, const char *b)"}, {"kind": "function", "line": 668, "name": "kstrncmp", "signature": "int kstrncmp(const char *a, const char *b, unsigned long n)"}, {"kind": "function", "line": 673, "name": "kstrchr", "signature": "char *kstrchr(const char *s, int c)"}, {"kind": "function", "line": 678, "name": "kstrstr", "signature": "char *kstrstr(const char *hay, const char *ndl)"}, {"kind": "function", "line": 688, "name": "kmemcpy", "signature": "void *kmemcpy(void *dst, const void *src, unsigned long n)"}, {"kind": "function", "line": 695, "name": "kmemset", "signature": "void *kmemset(void *dst, int c, unsigned long n)"}, {"kind": "function", "line": 701, "name": "kmemcmp", "signature": "int kmemcmp(const void *a, const void *b, unsigned long n)"}, {"kind": "function", "line": 707, "name": "kmemmove", "signature": "void *kmemmove(void *dst, const void *src, unsigned long n)"}, {"doc": "const unsigned char *pa = a, *pb = b; while (n--) { if (*pa != *pb) return *pa - *pb; pa++; pb++; } return 0; } void *kmemmove(void *dst, const void *src, unsigned long n) { char *d = dst; const char *s = src; if (d < s) { while (n--) *d++ = *s++; } else { d += n; s += n; while (n--) *--d = *--s; } return dst; } /* atoi helper", "kind": "function", "line": 717, "name": "katol", "signature": "static long katol(const char *s)"}, {"doc": "Reserve a data area of `want` bytes, clamped to the configured maximum. An existing area is kept when it is already large enough, otherwise the * live contents are carried over to the new one. Returns 1 on success.", "kind": "function", "line": 752, "name": "ramdisk_reserve", "signature": "static int ramdisk_reserve(unsigned long want)"}, {"doc": "Populate the ramdisk from a packed image. The image is validated in full before any entry is published, so a rejected image leaves the directory * untouched instead of advertising files whose data was never copied.", "kind": "function", "line": 769, "name": "ramdisk_setup_from", "signature": "void ramdisk_setup_from(void *data, unsigned size)"}, {"kind": "function", "line": 820, "name": "ramdisk_init", "signature": "void ramdisk_init(void)"}, {"kind": "function", "line": 837, "name": "ramdisk_open", "signature": "RDFile *ramdisk_open(const char *name)"}, {"kind": "function", "line": 847, "name": "ramdisk_read", "signature": "int ramdisk_read(RDFile *f, void *buf, unsigned offset, unsigned len)"}, {"kind": "function", "line": 855, "name": "ramdisk_write", "signature": "int ramdisk_write(RDFile *f, const void *buf, unsigned offset, unsigned len)"}, {"kind": "function", "line": 863, "name": "ramdisk_create", "signature": "RDFile *ramdisk_create(const char *name, unsigned size)"}, {"doc": "Grow or shrink an existing file by relocating the data that follows it. Files are stored back to back in the data area; this moves every file * after `f` by the size delta. Returns 1 on success, 0 on overflow.", "kind": "function", "line": 881, "name": "ramdisk_resize", "signature": "int ramdisk_resize(RDFile *f, unsigned newsize)"}, {"kind": "function", "line": 917, "name": "ramdisk_list", "signature": "int ramdisk_list(RDFile **out, int max)"}, {"doc": "Remove an entry and compact the data area. Files after `f` are shifted left by f->size and the directory slot is dropped. Returns 1 on success, * 0 when the pointer is not a live entry.", "kind": "function", "line": 929, "name": "ramdisk_delete", "signature": "int ramdisk_delete(RDFile *f)"}, {"doc": "Resolve a path against the cwd into `out` (cap >= RAMDISK_FNAME_LEN). A leading '/' starts from the root, '..' pops one component, '.' and empty components are skipped. Returns 1 on success; a name that does * not fit is rejected like a missing file, never truncated.", "kind": "function", "line": 965, "name": "fs_resolve", "signature": "static int fs_resolve(const char *path, char *out, unsigned cap)"}, {"doc": "if (*p) p++; continue; } if (len + 1 + clen >= cap) return 0; if (len > 0 && out[len - 1] != '/') out[len++] = '/'; kmemcpy(out + len, start, clen); len += clen; out[len] = 0; if (*p) p++; } return 1; } /* Does the directory `dir` (ending in '/') exist? The root always does.", "kind": "function", "line": 999, "name": "fs_dir_exists", "signature": "static int fs_dir_exists(const char *dir)"}, {"doc": "Return 1 when the resolved name refers to a directory: a trailing '/' always does, otherwise the name denotes a directory when no exact file * entry exists and some entry starts with `/`.", "kind": "function", "line": 1010, "name": "fs_is_dir", "signature": "static int fs_is_dir(const char *resolved)"}, {"kind": "function", "line": 1022, "name": "kfopen", "signature": "KFILE *kfopen(const char *path, const char *mode)"}, {"kind": "function", "line": 1058, "name": "kfclose", "signature": "int kfclose(KFILE *f)"}, {"kind": "function", "line": 1067, "name": "kfgetc", "signature": "int kfgetc(KFILE *f)"}, {"doc": "Read at most size-1 bytes up to and including the first newline. Returns * buf, or 0 when nothing could be read.", "kind": "function", "line": 1091, "name": "kfgets", "signature": "char *kfgets(char *buf, int size, KFILE *f)"}, {"kind": "function", "line": 1104, "name": "kfungetc", "signature": "int kfungetc(int c, KFILE *f)"}, {"kind": "function", "line": 1110, "name": "kfread", "signature": "unsigned long kfread(void *ptr, unsigned long size, unsigned long n, KFILE *f)"}, {"kind": "function", "line": 1132, "name": "kfwrite", "signature": "unsigned long kfwrite(const void *ptr, unsigned long size, unsigned long n, KFILE *f)"}, {"kind": "function", "line": 1160, "name": "kfseek", "signature": "int kfseek(KFILE *f, long offset, int whence)"}, {"kind": "function", "line": 1174, "name": "kftell", "signature": "long kftell(KFILE *f)"}, {"kind": "function", "line": 1178, "name": "kfflush", "signature": "int kfflush(KFILE *f)"}, {"kind": "function", "line": 1189, "name": "kfputs", "signature": "int kfputs(const char *s, KFILE *f)"}, {"kind": "function", "line": 1195, "name": "kfputc", "signature": "int kfputc(int c, KFILE *f)"}, {"kind": "function", "line": 1200, "name": "krewind", "signature": "void krewind(KFILE *f)"}, {"kind": "function", "line": 1212, "name": "kfile_stdin", "signature": "KFILE *kfile_stdin(void)"}, {"kind": "function", "line": 1214, "name": "kfile_stdout", "signature": "KFILE *kfile_stdout(void)"}, {"kind": "function", "line": 1215, "name": "kfile_stderr", "signature": "KFILE *kfile_stderr(void)"}, {"doc": "================================================================ printf family * ================================================================", "kind": "function", "line": 1221, "name": "putc_buf", "signature": "static void putc_buf(char c, void *ctx, int *written)"}, {"kind": "function", "line": 1227, "name": "putc_file", "signature": "static void putc_file(char c, void *ctx, int *written)"}, {"kind": "function", "line": 1233, "name": "putc_str", "signature": "static void putc_str(char c, void *ctx, int *written)"}, {"doc": "Emit a reverse-ordered digit buffer honouring width, left-justify and * zero-fill flags. buf holds `pos` digits least-significant first.", "kind": "function", "line": 1243, "name": "emit_num", "signature": "static void emit_num(void (*emit)(char, void *, int *), void *ctx, int *written,\n ..."}, {"kind": "function", "line": 1260, "name": "kformat", "signature": "static void kformat(void (*emit)(char, void *, int *), void *ctx,\n int *writte..."}, {"kind": "function", "line": 1359, "name": "kprintf", "signature": "int kprintf(const char *fmt, ...)"}, {"kind": "function", "line": 1368, "name": "kfprintf", "signature": "int kfprintf(KFILE *f, const char *fmt, ...)"}, {"kind": "function", "line": 1377, "name": "ksprintf", "signature": "int ksprintf(char *buf, const char *fmt, ...)"}, {"kind": "function", "line": 1390, "name": "putc_snbuf", "signature": "static void putc_snbuf(char c, void *ctx, int *written)"}, {"kind": "function", "line": 1395, "name": "ksnprintf", "signature": "int ksnprintf(char *buf, unsigned long size, const char *fmt, ...)"}, {"kind": "function", "line": 1421, "name": "k_register_symbol", "signature": "void k_register_symbol(const char *name, void *addr)"}, {"kind": "function", "line": 1429, "name": "ksym_resolve", "signature": "void *ksym_resolve(const char *name)"}, {"kind": "function", "line": 1455, "name": "kprog_slot", "signature": "static KProg *kprog_slot(const char *name)"}, {"kind": "function", "line": 1463, "name": "k_register_program", "signature": "void k_register_program(const char *name, prog_entry_t entry)"}, {"kind": "function", "line": 1471, "name": "k_register_process", "signature": "void k_register_process(const char *name, void *proc_entry)"}, {"kind": "function", "line": 1479, "name": "k_spawn", "signature": "int k_spawn(const char *name, int argc, char **argv)"}, {"doc": "Copy a NUL-terminated name out of a string table without reading past the table's bounds; an out-of-range or unterminated name yields an * empty string, never a wild pointer into the kernel heap.", "kind": "function", "line": 1600, "name": "elf_name_copy", "signature": "static void elf_name_copy(char *out, unsigned out_cap, const char *tab,\n ..."}, {"doc": "Release a partially built relocatable image and report why it was * rejected. Used on every failure path of elf_load.", "kind": "function", "line": 1616, "name": "elf_load_fail", "signature": "static void elf_load_fail(void *base, void **sec_addrs, const char *why)"}, {"kind": "function", "line": 1621, "name": "elf_load", "signature": "void *elf_load(void *data, unsigned size)"}, {"doc": "================================================================ Linux ELF executable loader (ET_EXEC / ET_DYN) + process runtime Loads program headers into the identity-mapped user region, applies RELATIVE / IRELATIVE / symbol relocations, sets up a System V initial stack (argc/argv/envp/auxv) and jumps to the ELF entry point. The program talks back to the kernel through the x86-64 `syscall` instruction (see the syscall dispatcher below). * ================================================================ static unsigned long g_brk; /* current program break static unsigned long g_brk_limit; /* upper bound for brk growth static unsigned long user_mmap_cur; /* anonymous mmap cursor, grows down", "kind": "function", "line": 1848, "name": "apply_exec_relocs", "signature": "static void apply_exec_relocs(void *data, unsigned size, unsigned long base,\n ..."}, {"kind": "function", "line": 1931, "name": "load_exec_elf", "signature": "void *load_exec_elf(void *data, unsigned size)"}, {"doc": "for (i = 0; i < nxr; i++) mm_user_set_exec(xr[i].start, xr[i].end); apply_exec_relocs(data, size, base, xr, nxr); g_brk = ALIGN_UP(max_end, 0x1000); g_brk_limit = USER_BRK_END; user_mmap_cur = USER_BRK_END; kprintf(\"exec: loaded at %lx entry %lx brk %lx\\n\", base + USER_LOAD_BASE, base + e->e_entry, g_brk); return (void *)(base + e->e_entry); } /* ---- MSR access + SYSCALL/SYSRET setup ----------------------------------", "kind": "function", "line": 1994, "name": "wrmsr", "signature": "static inline void wrmsr(unsigned msr, unsigned long val)"}, {"kind": "function", "line": 1999, "name": "rdmsr", "signature": "static inline unsigned long rdmsr(unsigned msr)"}, {"kind": "function", "line": 2014, "name": "syscall_init", "signature": "void syscall_init(void)"}, {"kind": "function", "line": 2090, "name": "ktime_rdtsc", "signature": "static unsigned long ktime_rdtsc(void)"}, {"kind": "function", "line": 2096, "name": "ktime_init", "signature": "static void ktime_init(void)"}, {"kind": "function", "line": 2111, "name": "ktime_ms", "signature": "static unsigned long ktime_ms(void)"}, {"kind": "function", "line": 2122, "name": "syscall_trace_enabled", "signature": "long syscall_trace_enabled(void)"}, {"kind": "function", "line": 2124, "name": "syscall_trace_set", "signature": "void syscall_trace_set(int on)"}, {"kind": "function", "line": 2125, "name": "ksyscall", "signature": "long ksyscall(long n, long a1, long a2, long a3, long a4, long a5, long a6)"}, {"doc": "--- User-pointer validation --------------------------------------------- The syscall boundary is the hardened edge between ring 3 and ring 0. Every pointer a Linux ABI program hands the kernel must lie inside the user window [USER_LOAD_BASE, USER_LOAD_END), because that is the only memory the page tables marked user-accessible. Anything else — kernel heap, kernel image, page tables, MMIO — must be rejected before a single * dereference. All arithmetic is overflow checked.", "kind": "function", "line": 2145, "name": "user_range_ok", "signature": "static int user_range_ok(unsigned long p, unsigned long len)"}, {"kind": "function", "line": 2151, "name": "user_str_ok", "signature": "static int user_str_ok(unsigned long p, unsigned long maxlen)"}, {"kind": "function", "line": 2159, "name": "ksyscall_dispatch", "signature": "static long ksyscall_dispatch(long n, long a1, long a2, long a3, long a4, long a5, long a6)"}, {"doc": "\" popq %r8\\n\" \" popq %r9\\n\" \" xchgq %rsp, syscall_kstack(%rip)\\n\" \" cmpq $\" STR(USER_WIN_LO) \", %rsp\\n\" \" jb 1f\\n\" \" cmpq $\" STR(USER_WIN_HI) \", %rsp\\n\" \" jae 1f\\n\" \" sysretq\\n\" \"1:\\n\" \" jmp *%rcx\\n\" ); /* ---- Build the SysV initial stack and jump to the ELF entry -------------", "kind": "function", "line": 2486, "name": "setup_user_stack", "signature": "static unsigned long *setup_user_stack(char *sbase, unsigned long ssize,\n ..."}, {"kind": "function", "line": 2517, "name": "k_exec_user", "signature": "int k_exec_user(void *entry, int argc, char **argv)"}, {"doc": "\"mov %%ax, %%es\\n\" \"mov %%ax, %%fs\\n\" \"mov %%ax, %%gs\\n\" \"mov %%ax, %%ss\\n\" :: [kdata] \"i\"(GDT64_DATA_SEL) : \"ax\", \"memory\"); wrmsr(MSR_FSBASE, 0); wrmsr(MSR_GSBASE, 0); syscall_kstack = SYS_KSTK_TOP; vga_mode13h = 0; /* reclaim the display for the text console return exec_exit_code; } /* Run an ET_REL program as a plain function call, but catch a libc exit().", "kind": "function", "line": 2571, "name": "k_run_rel", "signature": "int k_run_rel(prog_entry_t entry, int argc, char **argv)"}, {"doc": "return exec_exit_code; } /* Run an ET_REL program as a plain function call, but catch a libc exit(). int k_run_rel(prog_entry_t entry, int argc, char **argv) { exec_exit_code = 0; syscall_kstack = SYS_KSTK_TOP; if (ksetjmp(&exec_return) == 0) return entry(argc, argv); vga_mode13h = 0; return exec_exit_code; } /* libc exit() for loaded programs: unwind back to the shell.", "kind": "function", "line": 2581, "name": "kexit", "signature": "void kexit(int code)"}, {"kind": "function", "line": 2610, "name": "shell_prompt", "signature": "static void shell_prompt(void)"}, {"kind": "function", "line": 2627, "name": "pb_empty", "signature": "static int pb_empty(void)"}, {"kind": "function", "line": 2629, "name": "pb_count", "signature": "static int pb_count(void)"}, {"kind": "function", "line": 2630, "name": "pb_push_back", "signature": "static void pb_push_back(unsigned char c)"}, {"kind": "function", "line": 2635, "name": "pb_push_front", "signature": "static void pb_push_front(unsigned char c)"}, {"kind": "function", "line": 2640, "name": "pb_pop", "signature": "static int pb_pop(void)"}, {"kind": "function", "line": 2646, "name": "pb_peek", "signature": "static int pb_peek(void)"}, {"doc": "Next raw byte (kbd queue, then serial, then PS/2) without touching the * pushback FIFO; blocks until one is available.", "kind": "function", "line": 2653, "name": "raw_blocking_getc", "signature": "static int raw_blocking_getc(void)"}, {"doc": "int c = serial_getc(); if (c >= 0) return c; } if (kbd_available()) { int c = kbd_read(); if (c >= 0) return c; } if (vga_fb_active && (++mouse_tick_cnt & 0xFF) == 0) vga_fb_mouse_tick(); __asm__ volatile(\"pause\"); } } /* Non-blocking variant of the above for sequence lookahead.", "kind": "function", "line": 2672, "name": "raw_try_getc", "signature": "static int raw_try_getc(void)"}, {"doc": "Called after an ESC byte has been read. Pulls the remainder of the sequence non-blocking and classifies it. Returns 1 (PageUp), 2 (PageDown), or 0 for \"not a page key\" — in which case every byte pulled EXCEPT the leading ESC is re-injected into the pushback FIFO so the caller can hand them back to * the readline layer exactly as it would a raw escape.", "kind": "function", "line": 2692, "name": "consume_page_after_esc", "signature": "static int consume_page_after_esc(void)"}, {"kind": "function", "line": 2714, "name": "console_getc", "signature": "* returns console_getc() simply serves the FIFO again. */\nstatic int console_getc(void)"}, {"doc": "Next buffered byte without consuming it, or -1 when nothing is available right now. Used to tell an ESC prefix from a complete escape sequence, * which always arrives in one burst.", "kind": "function", "line": 2728, "name": "console_peek", "signature": "static int console_peek(void)"}, {"doc": "--- Scrollback view ---- Renders a 25-row window over (scrollback ring + live screen) into the VGA framebuffer and to the serial console, hides the cursor, and lets the user page up/down through history. PageDown at the bottom, or any other key, exits; the exit key is re-injected into the pushback FIFO so the readline * that was waiting for input receives it as if scrollback never happened. define SB_LEN (VGA_ROWS * VGA_COLS * 2)", "kind": "function", "line": 2743, "name": "scrollback_render", "signature": "static void scrollback_render(int voff, int total, const unsigned char *saved)"}, {"kind": "function", "line": 2779, "name": "scrollback_view", "signature": "static void scrollback_view(int initial_dir)"}, {"doc": "Read one line into buf (at most size-1 chars). Echoes input and * honours backspace. Shared by the shell prompt and the editor.", "kind": "function", "line": 2823, "name": "shell_readline_buf", "signature": "static void shell_readline_buf(char *buf, int size)"}, {"kind": "function", "line": 2849, "name": "shell_readline", "signature": "static void shell_readline(void)"}, {"doc": "Redraw the edit line with the recalled text: erase what is shown, * then write the replacement into buf and onto the console.", "kind": "function", "line": 2856, "name": "shell_hist_show", "signature": "static void shell_hist_show(char *buf, int size, int *pos, const char *text)"}, {"doc": "Move through the history ring: up recalls older entries, down moves * forward again and finally restores the live line.", "kind": "function", "line": 2872, "name": "shell_hist_nav", "signature": "static void shell_hist_nav(char *buf, int size, int *pos, int up)"}, {"kind": "function", "line": 3028, "name": "shell_parse", "signature": "static int shell_parse(char *line, char **argv, int max_args)"}, {"doc": "Shell status text must never land inside a redirected command's output: `cmd > file` captures what the command wrote, not what the shell reported * about it. These helpers lift a print out of the active capture.", "kind": "function", "line": 3046, "name": "redirect_suspend", "signature": "static int redirect_suspend(void)"}, {"kind": "function", "line": 3051, "name": "redirect_resume", "signature": "static void redirect_resume(int was)"}, {"kind": "function", "line": 3055, "name": "shell_report_exit", "signature": "static void shell_report_exit(int code)"}, {"kind": "function", "line": 3061, "name": "shell_report", "signature": "static void shell_report(const char *what, const char *detail)"}, {"doc": "int was = redirect_suspend(); kprintf(\"exit code: %d\\n\", code); redirect_resume(was); } static void shell_report(const char *what, const char *detail) { int was = redirect_suspend(); vga_puts(what); if (detail) vga_puts(detail); vga_putc('\\n'); redirect_resume(was); } /* Start capturing console output for a `> file` redirection.", "kind": "function", "line": 3071, "name": "redirect_begin", "signature": "static int redirect_begin(void)"}, {"doc": "Stop capturing and store the captured bytes in `path`. Returns 0 on success. The capture is released on every path so that a failure cannot * leave the console silently detached from the screen.", "kind": "function", "line": 3082, "name": "redirect_commit", "signature": "static int redirect_commit(const char *path, int append_mode)"}, {"doc": "Split a `> file` / `>> file` redirection off the end of a parsed command line. Returns 1 when a redirection was found, 0 when there was none and -1 when the syntax is incomplete. On success argc is trimmed to the * command and append_mode is set for `>>`.", "kind": "function", "line": 3103, "name": "shell_take_redirect", "signature": "static int shell_take_redirect(int *argc, char **argv, char **path, int *append_mode)"}, {"kind": "function", "line": 3125, "name": "shell_run", "signature": "void shell_run(void)"}, {"doc": "Load an ELF file from the ramdisk and register it under its filename stem. Returns 1 for an ET_REL program, 2 for an ET_EXEC/ET_DYN Linux process, * 0 on failure. progname_out must hold at least 32 bytes.", "kind": "function", "line": 3164, "name": "shell_load", "signature": "static int shell_load(const char *fname, char *progname_out, void **entry_out)"}, {"kind": "function", "line": 3220, "name": "edit_alloc", "signature": "static EditBuf *edit_alloc(const char *fname)"}, {"kind": "function", "line": 3236, "name": "edit_free", "signature": "static void edit_free(EditBuf *e)"}, {"kind": "function", "line": 3242, "name": "edit_load", "signature": "static int edit_load(EditBuf *e)"}, {"kind": "function", "line": 3277, "name": "edit_save", "signature": "static int edit_save(EditBuf *e)"}, {"kind": "function", "line": 3291, "name": "edit_print", "signature": "static void edit_print(EditBuf *e, int idx)"}, {"kind": "function", "line": 3299, "name": "edit_list", "signature": "static void edit_list(EditBuf *e)"}, {"kind": "function", "line": 3308, "name": "edit_set_line", "signature": "static int edit_set_line(EditBuf *e, int idx, const char *text)"}, {"kind": "function", "line": 3317, "name": "edit_insert", "signature": "static int edit_insert(EditBuf *e, int idx, const char *text)"}, {"kind": "function", "line": 3327, "name": "edit_delete", "signature": "static int edit_delete(EditBuf *e, int idx)"}, {"kind": "function", "line": 3336, "name": "edit_usage", "signature": "static void edit_usage(void)"}, {"doc": "A buffer that did not hold the whole file must never be written back: * saving it would drop the part that was never loaded.", "kind": "function", "line": 3345, "name": "edit_refuse_save", "signature": "static int edit_refuse_save(EditBuf *e)"}, {"kind": "function", "line": 3350, "name": "edit_loop", "signature": "static void edit_loop(EditBuf *e)"}, {"kind": "function", "line": 3414, "name": "shell_cmd_edit", "signature": "static void shell_cmd_edit(int argc, char **argv)"}, {"kind": "function", "line": 3446, "name": "outw_port", "signature": "static inline void outw_port(unsigned short port, unsigned short val)"}, {"doc": "define QEMU_PM_PORT 0x604", "kind": "function", "line": 3452, "name": "shell_cmd_poweroff", "signature": "static void shell_cmd_poweroff(void)"}, {"doc": "Resolve a command through the bin path: load /bin/ (root-anchored, like Linux /bin, so the cwd never changes where commands are found) from the ramdisk as a Linux ELF and run it with the original argv. Returns * the exit code or -1 when the name is not eligible or no ELF exists.", "kind": "function", "line": 3463, "name": "shell_run_from_path", "signature": "static int shell_run_from_path(const char *cmd, int argc, char **argv)"}, {"kind": "function", "line": 3477, "name": "shell_exec_builtin", "signature": "static void shell_exec_builtin(int argc, char **argv)"}, {"doc": "================================================================ Libc symbol registration * ================================================================", "kind": "function", "line": 3815, "name": "register_libc_symbols", "signature": "static void register_libc_symbols(void)"}, {"kind": "function", "line": 3882, "name": "__attribute__", "signature": "__attribute__((section(\".init.text\")))\nvoid kmain(void)"}, {"kind": "macro", "line": 14, "name": "COM1"}, {"kind": "macro", "line": 122, "name": "SCROLLBACK_ROWS"}, {"kind": "macro", "line": 163, "name": "REDIR_INITIAL_CAP"}, {"kind": "macro", "line": 164, "name": "REDIR_MAX_BYTES"}, {"kind": "macro", "line": 265, "name": "KBD_QUEUE_LEN"}, {"kind": "macro", "line": 273, "name": "KBD_RAW_LEN"}, {"kind": "macro", "line": 383, "name": "ALLOC_MAGIC"}, {"kind": "macro", "line": 385, "name": "FREE_MAGIC"}, {"kind": "macro", "line": 386, "name": "ALIGN_UP"}, {"kind": "macro", "line": 393, "name": "BLOCK_HDR_SZ"}, {"kind": "macro", "line": 404, "name": "USER_LOAD_BASE"}, {"kind": "macro", "line": 405, "name": "USER_LOAD_END"}, {"kind": "macro", "line": 406, "name": "USER_STACK_SIZE"}, {"kind": "macro", "line": 407, "name": "USER_STACK_TOP"}, {"kind": "macro", "line": 408, "name": "USER_STACK_BASE"}, {"kind": "macro", "line": 409, "name": "USER_BRK_END"}, {"kind": "macro", "line": 410, "name": "SYS_KSTK_TOP"}, {"kind": "macro", "line": 411, "name": "SYS_KSTK_BASE"}, {"kind": "macro", "line": 412, "name": "HEAP_BASE"}, {"kind": "macro", "line": 413, "name": "HEAP_SIZE"}, {"kind": "macro", "line": 414, "name": "EFAULT"}, {"kind": "macro", "line": 416, "name": "MSR_EFER"}, {"kind": "macro", "line": 418, "name": "EFER_NXE"}, {"kind": "macro", "line": 419, "name": "PT_FLAGS_PS"}, {"kind": "macro", "line": 421, "name": "PT_FLAGS_NX"}, {"kind": "macro", "line": 422, "name": "PT_ADDR_MASK"}, {"kind": "macro", "line": 423, "name": "PT_USER_ENTRY"}, {"kind": "macro", "line": 424, "name": "PT_USER_NX_ENTRY"}, {"kind": "macro", "line": 429, "name": "USER_WIN_LO"}, {"kind": "macro", "line": 430, "name": "USER_WIN_HI"}, {"kind": "macro", "line": 431, "name": "STR_"}, {"kind": "macro", "line": 432, "name": "STR"}, {"kind": "macro", "line": 730, "name": "RD_MAGIC"}, {"kind": "macro", "line": 732, "name": "RD_HEADER_SIZE"}, {"kind": "macro", "line": 733, "name": "RD_ENTRY_SIZE"}, {"kind": "macro", "line": 734, "name": "RD_DATA_MIN"}, {"kind": "macro", "line": 735, "name": "RD_DATA_SPARE"}, {"kind": "macro", "line": 736, "name": "RD_DATA_MAX"}, {"kind": "macro", "line": 1411, "name": "KSYM_MAX"}, {"kind": "macro", "line": 1443, "name": "KPROG_MAX"}, {"kind": "macro", "line": 1499, "name": "EI_NIDENT"}, {"kind": "macro", "line": 1562, "name": "ELF64_R_SYM"}, {"kind": "macro", "line": 1564, "name": "ELF64_R_TYPE"}, {"kind": "macro", "line": 1565, "name": "SHN_UNDEF"}, {"kind": "macro", "line": 1566, "name": "SHT_SYMTAB"}, {"kind": "macro", "line": 1568, "name": "SHT_STRTAB"}, {"kind": "macro", "line": 1569, "name": "SHT_RELA"}, {"kind": "macro", "line": 1570, "name": "SHT_PROGBITS"}, {"kind": "macro", "line": 1571, "name": "SHT_NOBITS"}, {"kind": "macro", "line": 1572, "name": "SHF_ALLOC"}, {"kind": "macro", "line": 1573, "name": "SHF_EXECINSTR"}, {"kind": "macro", "line": 1574, "name": "ET_REL"}, {"kind": "macro", "line": 1576, "name": "ET_EXEC"}, {"kind": "macro", "line": 1577, "name": "ET_DYN"}, {"kind": "macro", "line": 1578, "name": "EM_X86_64"}, {"kind": "macro", "line": 1579, "name": "PT_LOAD"}, {"kind": "macro", "line": 1580, "name": "R_X86_64_64"}, {"kind": "macro", "line": 1582, "name": "R_X86_64_PC32"}, {"kind": "macro", "line": 1583, "name": "R_X86_64_PLT32"}, {"kind": "macro", "line": 1584, "name": "R_X86_64_GLOB_DAT"}, {"kind": "macro", "line": 1585, "name": "R_X86_64_JUMP_SLOT"}, {"kind": "macro", "line": 1586, "name": "R_X86_64_RELATIVE"}, {"kind": "macro", "line": 1587, "name": "R_X86_64_32"}, {"kind": "macro", "line": 1588, "name": "R_X86_64_32S"}, {"kind": "macro", "line": 1589, "name": "R_X86_64_IRELATIVE"}, {"kind": "macro", "line": 1590, "name": "PF_X"}, {"kind": "macro", "line": 1592, "name": "ELF_MAX_SEGMENTS"}, {"kind": "macro", "line": 1593, "name": "ELF_NAME_MAX"}, {"kind": "macro", "line": 2004, "name": "MSR_EFER"}, {"kind": "macro", "line": 2006, "name": "MSR_STAR"}, {"kind": "macro", "line": 2007, "name": "MSR_LSTAR"}, {"kind": "macro", "line": 2008, "name": "MSR_SFMASK"}, {"kind": "macro", "line": 2009, "name": "MSR_FSBASE"}, {"kind": "macro", "line": 2010, "name": "MSR_GSBASE"}, {"kind": "macro", "line": 2070, "name": "KFD_MAX"}, {"kind": "macro", "line": 2080, "name": "SYSCALL_TRACE"}, {"kind": "macro", "line": 2590, "name": "CMD_BUF_SZ"}, {"kind": "macro", "line": 2592, "name": "MAX_ARGS"}, {"kind": "macro", "line": 2593, "name": "SHELL_BIN_PATH"}, {"kind": "macro", "line": 2595, "name": "SHELL_BIN_PATH_LEN"}, {"kind": "macro", "line": 2596, "name": "SHELL_BIN_MAX_CMD"}, {"kind": "macro", "line": 2600, "name": "SHELL_CVM_INTERP"}, {"kind": "macro", "line": 2603, "name": "SHELL_HIST_MAX"}, {"kind": "macro", "line": 2623, "name": "PB_LEN"}, {"kind": "macro", "line": 2742, "name": "SB_LEN"}, {"kind": "macro", "line": 2763, "name": "SB_PGUP"}, {"kind": "macro", "line": 2765, "name": "SB_PGDN"}, {"kind": "macro", "line": 2766, "name": "SB_EXIT"}, {"kind": "macro", "line": 3203, "name": "EDIT_MAX_LINES"}, {"kind": "macro", "line": 3205, "name": "EDIT_LINE_MAX"}, {"kind": "macro", "line": 3206, "name": "EDIT_FILE_MAX"}, {"kind": "macro", "line": 3450, "name": "QEMU_PM_PORT"}]}, {"doc": "ifndef KERNEL_H define KERNEL_H ========== Port I/O helpers ==========", "id": "kernel.h", "kind": "module", "label": "kernel.h", "language": "h", "sha256": "7419df5756e43e80", "symbol_count": 34, "symbols": [{"doc": "#ifndef KERNEL_H #define KERNEL_H /* ========== Port I/O helpers ========== ifndef PORT_IO_DEFINED define PORT_IO_DEFINED", "kind": "function", "line": 7, "name": "outb", "signature": "static inline void outb(unsigned short port, unsigned char val)"}, {"kind": "function", "line": 10, "name": "inb", "signature": "static inline unsigned char inb(unsigned short port)"}, {"kind": "function", "line": 15, "name": "outw", "signature": "static inline void outw(unsigned short port, unsigned short val)"}, {"kind": "function", "line": 18, "name": "inw", "signature": "static inline unsigned short inw(unsigned short port)"}, {"kind": "macro", "line": 2, "name": "KERNEL_H"}, {"kind": "macro", "line": 6, "name": "PORT_IO_DEFINED"}, {"kind": "macro", "line": 26, "name": "VGA_BASE"}, {"kind": "macro", "line": 27, "name": "VGA_COLS"}, {"kind": "macro", "line": 28, "name": "VGA_ROWS"}, {"kind": "macro", "line": 45, "name": "KEY_BACKSPACE"}, {"kind": "macro", "line": 46, "name": "KEY_ENTER"}, {"kind": "macro", "line": 47, "name": "KEY_LSHIFT"}, {"kind": "macro", "line": 48, "name": "KEY_RSHIFT"}, {"kind": "macro", "line": 49, "name": "KEY_CAPS"}, {"kind": "macro", "line": 50, "name": "KEY_E0"}, {"kind": "macro", "line": 51, "name": "KEY_UP"}, {"kind": "macro", "line": 52, "name": "KEY_DOWN"}, {"kind": "macro", "line": 53, "name": "KEY_PGUP"}, {"kind": "macro", "line": 54, "name": "KEY_PGDN"}, {"kind": "macro", "line": 55, "name": "KEY_ESC"}, {"kind": "macro", "line": 56, "name": "KEY_CSI"}, {"kind": "macro", "line": 57, "name": "KEY_ARR_UP"}, {"kind": "macro", "line": 58, "name": "KEY_ARR_DOWN"}, {"kind": "macro", "line": 59, "name": "KEY_PGUP_SEQ"}, {"kind": "macro", "line": 60, "name": "KEY_PGDN_SEQ"}, {"kind": "macro", "line": 61, "name": "KEY_LEFT"}, {"kind": "macro", "line": 62, "name": "KEY_RIGHT"}, {"kind": "macro", "line": 63, "name": "KEY_LCTRL"}, {"kind": "macro", "line": 64, "name": "KEY_F5"}, {"kind": "macro", "line": 65, "name": "KEY_F11"}, {"kind": "macro", "line": 66, "name": "KEY_TILDE"}, {"kind": "macro", "line": 84, "name": "RAMDISK_MAX_FILES"}, {"kind": "macro", "line": 85, "name": "RAMDISK_FNAME_LEN"}, {"kind": "macro", "line": 104, "name": "EOF"}]}, {"doc": "include \"kernel.h\" include \"lz4_kernel.h\" define HASH_BITS 12 define HASH_SIZE (1 << HASH_BITS)", "id": "lz4_kernel.c", "kind": "module", "label": "lz4_kernel.c", "language": "c", "sha256": "2a4f2a79b21818ec", "symbol_count": 9, "symbols": [{"doc": "define HASH_BITS 12 define HASH_SIZE (1 << HASH_BITS)", "kind": "function", "line": 6, "name": "LZ4_read32", "signature": "static inline unsigned int LZ4_read32(const unsigned char *p)"}, {"kind": "function", "line": 13, "name": "LZ4_read16", "signature": "static inline unsigned int LZ4_read16(const unsigned char *p)"}, {"kind": "function", "line": 20, "name": "LZ4_write16", "signature": "static inline void LZ4_write16(unsigned char *dst, unsigned short v)"}, {"kind": "function", "line": 25, "name": "LZ4_hash", "signature": "static unsigned int LZ4_hash(const unsigned char *p)"}, {"kind": "function", "line": 32, "name": "LZ4_compressBound", "signature": "int LZ4_compressBound(int inputSize)"}, {"kind": "function", "line": 39, "name": "LZ4_compress_default", "signature": "int LZ4_compress_default(const char *src, char *dst, int srcSize, int dstCapacity)"}, {"kind": "function", "line": 163, "name": "LZ4_decompress_safe", "signature": "int LZ4_decompress_safe(const char *src, char *dst, int compressedSize, int dstCapacity)"}, {"kind": "macro", "line": 3, "name": "HASH_BITS"}, {"kind": "macro", "line": 5, "name": "HASH_SIZE"}]}, {"doc": "ifndef LZ4_KERNEL_H define LZ4_KERNEL_H", "id": "lz4_kernel.h", "kind": "module", "label": "lz4_kernel.h", "language": "h", "sha256": "754626da274a1d10", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 2, "name": "LZ4_KERNEL_H"}]}, {"id": "mcp/__init__.py", "kind": "module", "label": "__init__.py", "language": "py", "sha256": "9a62779e844a15fa", "symbol_count": 0, "symbols": []}, {"id": "mcp/mcp_dbg_driver.py", "kind": "module", "label": "mcp_dbg_driver.py", "language": "py", "sha256": "d729864610ee717c", "symbol_count": 6, "symbols": [{"kind": "class", "line": 14, "name": "Client", "signature": "class Client"}, {"kind": "method", "line": 62, "name": "main", "signature": "def main()"}, {"kind": "method", "line": 15, "name": "__init__", "signature": "def __init__(self)"}, {"kind": "method", "line": 26, "name": "request", "signature": "def request(self, method, params)"}, {"kind": "method", "line": 44, "name": "tool", "signature": "def tool(self, name, params)"}, {"kind": "method", "line": 52, "name": "close", "signature": "def close(self)"}]}, {"id": "mcp/mcp_dogfood.py", "kind": "module", "label": "mcp_dogfood.py", "language": "py", "sha256": "0fca1f780714df8f", "symbol_count": 6, "symbols": [{"kind": "class", "line": 18, "name": "Client", "signature": "class Client"}, {"kind": "method", "line": 76, "name": "main", "signature": "def main()"}, {"kind": "method", "line": 19, "name": "__init__", "signature": "def __init__(self, addons_dir)"}, {"kind": "method", "line": 38, "name": "request", "signature": "def request(self, method, params)"}, {"kind": "method", "line": 56, "name": "tool", "signature": "def tool(self, name, params)"}, {"kind": "method", "line": 66, "name": "close", "signature": "def close(self)"}]}, {"id": "mcp/minios_addons.py", "kind": "module", "label": "minios_addons.py", "language": "py", "sha256": "26bc9344556d357f", "symbol_count": 16, "symbols": [{"doc": "Expected marketplace failure, reported to the client as isError.", "kind": "class", "line": 42, "name": "AddonError", "signature": "class AddonError(Exception)"}, {"kind": "method", "line": 48, "name": "_clean", "signature": "def _clean(s)"}, {"kind": "method", "line": 52, "name": "_unquote", "signature": "def _unquote(v)"}, {"doc": "Parse the strict YAML subset. Returns the addon dict.\n\nGrammar: flat `key: value` lines; `install:` opens an indented block\nwith `repo_url:`, a `files:` list of `- src:`/`dst:` pairs, and\n`build:` / `verify:` lists of `- ...` command lines (`verify` items\nmay carry a nested `exit_code:`). Everything else is a parse error\nwith its line number.", "kind": "method", "line": 59, "name": "parse_addon_yaml", "signature": "def parse_addon_yaml(text)"}, {"doc": "Check bounds and character sets. Raises AddonError.", "kind": "method", "line": 189, "name": "validate_addon", "signature": "def validate_addon(addon, source)"}, {"doc": "dst paths live on the ramdisk: relative, no '..', bounded charset.", "kind": "method", "line": 250, "name": "validate_addon_path", "signature": "def validate_addon_path(path)"}, {"doc": "Build/verify lines are single printable-ASCII shell commands.", "kind": "method", "line": 264, "name": "validate_shell_line", "signature": "def validate_shell_line(line)"}, {"doc": "Load every addon yaml; each entry is a dict or an error string.", "kind": "method", "line": 278, "name": "load_addons_dir", "signature": "def load_addons_dir(addons_dir)"}, {"doc": "Split a source into editor-sized chunks. Raises AddonError.", "kind": "method", "line": 302, "name": "split_for_editor", "signature": "def split_for_editor(text)"}, {"kind": "method", "line": 327, "name": "exit_code_of", "signature": "def exit_code_of(text)"}, {"doc": "Host-side record of installed addons (system temp dir).", "kind": "class", "line": 332, "name": "AddonState", "signature": "class AddonState"}, {"doc": "Install one validated addon into the booted MiniOS session.\n\nFailure at any step raises AddonError; upload parts are removed and\nnothing is recorded, so a half-installed package is never reported.", "kind": "method", "line": 356, "name": "install_addon", "signature": "def install_addon(session, addon, cfg)"}, {"kind": "method", "line": 69, "name": "fail", "signature": "def fail(lineno, why)"}, {"kind": "method", "line": 335, "name": "__init__", "signature": "def __init__(self, path)"}, {"kind": "method", "line": 338, "name": "load", "signature": "def load(self)"}, {"kind": "method", "line": 348, "name": "save", "signature": "def save(self, addons)"}]}, {"id": "mcp/minios_mcp.py", "kind": "module", "label": "minios_mcp.py", "language": "py", "sha256": "f9cc2728a96bf30d", "symbol_count": 48, "symbols": [{"doc": "Resolve the configuration: defaults overridden by the environment.", "kind": "function", "line": 68, "name": "env_config", "signature": "def env_config()"}, {"doc": "Clamp a requested wait to the bounded timeout range.", "kind": "function", "line": 86, "name": "clamp_timeout", "signature": "def clamp_timeout(ms)"}, {"doc": "Reject file names the ramdisk or the shell would mishandle.", "kind": "function", "line": 99, "name": "validate_path", "signature": "def validate_path(name)"}, {"doc": "Reject lines the kernel readline cannot carry (printable ASCII).", "kind": "function", "line": 115, "name": "validate_content", "signature": "def validate_content(text)"}, {"doc": "Expected tool failure, reported to the client as isError.", "kind": "class", "line": 128, "name": "ToolError", "signature": "class ToolError(Exception)"}, {"doc": "JSON-RPC level failure carrying a standard error code.", "kind": "class", "line": 134, "name": "RPCError", "signature": "class RPCError(Exception)"}, {"doc": "Bounded console log with absolute byte positions and waits.", "kind": "class", "line": 143, "name": "LogBuffer", "signature": "class LogBuffer"}, {"doc": "One QEMU child, one pty, one console log, one consume cursor.", "kind": "class", "line": 199, "name": "MiniOSSession", "signature": "class MiniOSSession"}, {"kind": "method", "line": 493, "name": "subprocess_launch", "signature": "def subprocess_launch(cfg, slave_fd)"}, {"doc": "JSON-RPC dispatch loop over stdio.", "kind": "class", "line": 605, "name": "MCPServer", "signature": "class MCPServer"}, {"kind": "method", "line": 743, "name": "main", "signature": "def main()"}, {"kind": "method", "line": 137, "name": "__init__", "signature": "def __init__(self, code, message)"}, {"kind": "method", "line": 146, "name": "__init__", "signature": "def __init__(self, cap)"}, {"kind": "method", "line": 152, "name": "append", "signature": "def append(self, data)"}, {"kind": "method", "line": 160, "name": "bytes_from", "signature": "def bytes_from(self, pos)"}, {"kind": "method", "line": 165, "name": "text_from", "signature": "def text_from(self, pos, end)"}, {"kind": "method", "line": 172, "name": "find", "signature": "def find(self, marker, start)"}, {"doc": "Block until marker appears at or after start; return position.", "kind": "method", "line": 176, "name": "wait_for", "signature": "def wait_for(self, marker, start, timeout_ms)"}, {"kind": "method", "line": 189, "name": "_find_locked", "signature": "def _find_locked(self, marker, start)"}, {"kind": "method", "line": 202, "name": "__init__", "signature": "def __init__(self, cfg)"}, {"kind": "method", "line": 213, "name": "booted", "signature": "def booted(self)"}, {"kind": "method", "line": 216, "name": "status", "signature": "def status(self)"}, {"kind": "method", "line": 225, "name": "_reap_stale", "signature": "def _reap_stale(self)"}, {"kind": "method", "line": 261, "name": "_drop_pidfile", "signature": "def _drop_pidfile(self)"}, {"kind": "method", "line": 267, "name": "boot", "signature": "def boot(self, timeout_ms)"}, {"kind": "method", "line": 302, "name": "_read_loop", "signature": "def _read_loop(self)"}, {"kind": "method", "line": 312, "name": "_close_pty", "signature": "def _close_pty(self)"}, {"kind": "method", "line": 322, "name": "_write_line", "signature": "def _write_line(self, line)"}, {"doc": "Editor content lines may be empty (blank lines in the file).", "kind": "method", "line": 331, "name": "_write_editor_line", "signature": "def _write_editor_line(self, line)"}, {"kind": "method", "line": 339, "name": "send", "signature": "def send(self, line, timeout_ms)"}, {"kind": "method", "line": 350, "name": "expect", "signature": "def expect(self, marker, timeout_ms)"}, {"kind": "method", "line": 364, "name": "snapshot", "signature": "def snapshot(self, max_bytes)"}, {"kind": "method", "line": 374, "name": "cat", "signature": "def cat(self, path)"}, {"doc": "Read a ramdisk file and return exactly its bytes.\n\nThe serial driver emits CRLF; the kernel cat appends one newline\nafter the content, so the body is extracted by stripping the echoed\ncommand line, the prompt and that single trailing newline.", "kind": "method", "line": 380, "name": "cat_body", "signature": "def cat_body(self, path, missing_ok)"}, {"kind": "method", "line": 406, "name": "_cleanup_parts", "signature": "def _cleanup_parts(self, parts)"}, {"kind": "method", "line": 413, "name": "write", "signature": "def write(self, path, content)"}, {"kind": "method", "line": 450, "name": "poweroff", "signature": "def poweroff(self, timeout_ms)"}, {"kind": "method", "line": 470, "name": "terminate", "signature": "def terminate(self)"}, {"kind": "method", "line": 489, "name": "close", "signature": "def close(self)"}, {"kind": "method", "line": 608, "name": "__init__", "signature": "def __init__(self, cfg)"}, {"kind": "method", "line": 612, "name": "run", "signature": "def run(self)"}, {"kind": "method", "line": 620, "name": "_handle", "signature": "def _handle(self, line)"}, {"kind": "method", "line": 646, "name": "_initialize", "signature": "def _initialize(self, params)"}, {"kind": "method", "line": 653, "name": "_call", "signature": "def _call(self, params)"}, {"kind": "method", "line": 670, "name": "_dispatch", "signature": "def _dispatch(self, name, args)"}, {"kind": "method", "line": 697, "name": "_addons_list", "signature": "def _addons_list(self)"}, {"kind": "method", "line": 718, "name": "_addon_install", "signature": "def _addon_install(self, args)"}, {"kind": "method", "line": 739, "name": "_reply", "signature": "def _reply(self, msg)"}]}, {"doc": "Mutation testing for the MiniOS MCP bridge. Every mutant is injected into a private copy of minios_mcp.py and run against the unit and BDD suite. A mutant that survives (suite fully green) exposes a test gap. Suites run in parallel (one worker per core, MUTATE_JOBS to override); each mutant gets its own pid file and addon state so the runs stay independent. Mutation format: \"name | sed -i expression | file\"", "id": "mcp/mutate_mcp.sh", "kind": "module", "label": "mutate_mcp.sh", "language": "sh", "sha256": "fff886f5090d023d", "symbol_count": 1, "symbols": [{"doc": "Each mutant runs the suite in its own directory with its own pid file and addon state, so the runs are independent and may execute in parallel. The worker writes the exit code; the loop below maps it onto the verdict.", "kind": "function", "line": 115, "name": "run_one"}]}, {"id": "mcp/test_minios_mcp.py", "kind": "module", "label": "test_minios_mcp.py", "language": "py", "sha256": "2d3a02511a702c8d", "symbol_count": 95, "symbols": [{"kind": "function", "line": 29, "name": "load_module", "signature": "def load_module()"}, {"kind": "function", "line": 49, "name": "have_qemu", "signature": "def have_qemu()"}, {"doc": "Child process running minios_mcp.py, driven over stdio JSON-RPC.", "kind": "class", "line": 55, "name": "MCPServer", "signature": "class MCPServer"}, {"kind": "class", "line": 138, "name": "TestProtocol", "signature": "class TestProtocol(TestCase)"}, {"kind": "class", "line": 193, "name": "TestValidation", "signature": "class TestValidation(TestCase)"}, {"kind": "class", "line": 242, "name": "TestLogBuffer", "signature": "class TestLogBuffer(TestCase)"}, {"doc": "Fail-fast for QEMU-backed classes: once a tool call has hit a\nconsole wait timeout the bridge is stuck (a mutated marker, a hung\nshell) and every remaining test would only burn its own timeout, so\nthey are skipped instead.", "kind": "class", "line": 274, "name": "_ConsoleBDDBase", "signature": "class _ConsoleBDDBase(TestCase)"}, {"kind": "class", "line": 310, "name": "TestMiniOSBDD", "signature": "class TestMiniOSBDD(_ConsoleBDDBase)"}, {"kind": "class", "line": 412, "name": "TestAddonYaml", "signature": "class TestAddonYaml(TestCase)"}, {"kind": "class", "line": 474, "name": "TestAddonHelpers", "signature": "class TestAddonHelpers(TestCase)"}, {"doc": "In-memory stand-in for the MiniOS session (no QEMU).", "kind": "class", "line": 514, "name": "FakeOS", "signature": "class FakeOS"}, {"kind": "class", "line": 580, "name": "TestAddonInstall", "signature": "class TestAddonInstall(TestCase)"}, {"doc": "Install a fixture addon from a local git repo into the real OS.", "kind": "class", "line": 715, "name": "TestAddonBDD", "signature": "class TestAddonBDD(_ConsoleBDDBase)"}, {"kind": "method", "line": 58, "name": "__init__", "signature": "def __init__(self, env_extra)"}, {"kind": "method", "line": 77, "name": "initialize", "signature": "def initialize(self)"}, {"kind": "method", "line": 81, "name": "request", "signature": "def request(self, method, params)"}, {"kind": "method", "line": 88, "name": "raw", "signature": "def raw(self, line)"}, {"kind": "method", "line": 93, "name": "_read_response", "signature": "def _read_response(self)"}, {"kind": "method", "line": 99, "name": "_roundtrip", "signature": "def _roundtrip(self, msg)"}, {"kind": "method", "line": 107, "name": "tool", "signature": "def tool(self, name, params)"}, {"kind": "method", "line": 117, "name": "close", "signature": "def close(self)"}, {"kind": "method", "line": 140, "name": "setUpClass", "signature": "def setUpClass(cls)"}, {"kind": "method", "line": 146, "name": "tearDownClass", "signature": "def tearDownClass(cls)"}, {"kind": "method", "line": 149, "name": "test_initialize", "signature": "def test_initialize(self)"}, {"kind": "method", "line": 155, "name": "test_tools_list", "signature": "def test_tools_list(self)"}, {"kind": "method", "line": 163, "name": "test_ping", "signature": "def test_ping(self)"}, {"kind": "method", "line": 167, "name": "test_unknown_method", "signature": "def test_unknown_method(self)"}, {"kind": "method", "line": 171, "name": "test_malformed_json", "signature": "def test_malformed_json(self)"}, {"kind": "method", "line": 175, "name": "test_unknown_tool", "signature": "def test_unknown_tool(self)"}, {"kind": "method", "line": 180, "name": "test_send_not_booted", "signature": "def test_send_not_booted(self)"}, {"kind": "method", "line": 186, "name": "test_send_empty_line_rejected", "signature": "def test_send_empty_line_rejected(self)"}, {"kind": "method", "line": 195, "name": "setUpClass", "signature": "def setUpClass(cls)"}, {"kind": "method", "line": 200, "name": "test_path_accepts_plain_names", "signature": "def test_path_accepts_plain_names(self)"}, {"kind": "method", "line": 204, "name": "test_path_rejects_unsafe", "signature": "def test_path_rejects_unsafe(self)"}, {"kind": "method", "line": 208, "name": "test_path_rejects_long", "signature": "def test_path_rejects_long(self)"}, {"kind": "method", "line": 211, "name": "test_content_accepts_ascii", "signature": "def test_content_accepts_ascii(self)"}, {"kind": "method", "line": 214, "name": "test_content_rejects_non_printable", "signature": "def test_content_rejects_non_printable(self)"}, {"kind": "method", "line": 218, "name": "test_timeout_clamped", "signature": "def test_timeout_clamped(self)"}, {"kind": "method", "line": 222, "name": "test_write_rejects_line_too_long", "signature": "def test_write_rejects_line_too_long(self)"}, {"kind": "method", "line": 231, "name": "test_write_rejects_too_many_lines", "signature": "def test_write_rejects_too_many_lines(self)"}, {"kind": "method", "line": 244, "name": "setUpClass", "signature": "def setUpClass(cls)"}, {"kind": "method", "line": 249, "name": "test_bounds", "signature": "def test_bounds(self)"}, {"kind": "method", "line": 256, "name": "test_find_and_total", "signature": "def test_find_and_total(self)"}, {"kind": "method", "line": 263, "name": "test_cursor_prevents_stale_match", "signature": "def test_cursor_prevents_stale_match(self)"}, {"kind": "method", "line": 283, "name": "guard_server", "signature": "def guard_server(cls)"}, {"kind": "method", "line": 304, "name": "setUp", "signature": "def setUp(self)"}, {"kind": "method", "line": 312, "name": "setUpClass", "signature": "def setUpClass(cls)"}, {"kind": "method", "line": 319, "name": "tearDownClass", "signature": "def tearDownClass(cls)"}, {"kind": "method", "line": 323, "name": "test_t01_boot", "signature": "def test_t01_boot(self)"}, {"kind": "method", "line": 333, "name": "test_t02_expect", "signature": "def test_t02_expect(self)"}, {"kind": "method", "line": 340, "name": "test_t03_write_and_cat", "signature": "def test_t03_write_and_cat(self)"}, {"kind": "method", "line": 350, "name": "test_t04_toolchain_elf", "signature": "def test_t04_toolchain_elf(self)"}, {"kind": "method", "line": 361, "name": "test_t05_toolchain_cvm", "signature": "def test_t05_toolchain_cvm(self)"}, {"kind": "method", "line": 371, "name": "test_t06_selfhosted_compiler", "signature": "def test_t06_selfhosted_compiler(self)"}, {"kind": "method", "line": 377, "name": "test_t07_bin_command_path", "signature": "def test_t07_bin_command_path(self)"}, {"kind": "method", "line": 385, "name": "test_t08_poweroff_and_reboot", "signature": "def test_t08_poweroff_and_reboot(self)"}, {"kind": "method", "line": 414, "name": "setUpClass", "signature": "def setUpClass(cls)"}, {"kind": "method", "line": 424, "name": "test_parse_valid", "signature": "def test_parse_valid(self)"}, {"kind": "method", "line": 434, "name": "test_validate_accepts_valid", "signature": "def test_validate_accepts_valid(self)"}, {"kind": "method", "line": 438, "name": "test_unknown_key_rejected", "signature": "def test_unknown_key_rejected(self)"}, {"kind": "method", "line": 442, "name": "test_bad_indent_rejected", "signature": "def test_bad_indent_rejected(self)"}, {"kind": "method", "line": 446, "name": "test_validate_rejects_bad_dst", "signature": "def test_validate_rejects_bad_dst(self)"}, {"kind": "method", "line": 451, "name": "test_validate_rejects_missing_name", "signature": "def test_validate_rejects_missing_name(self)"}, {"kind": "method", "line": 455, "name": "test_validate_rejects_long_build_line", "signature": "def test_validate_rejects_long_build_line(self)"}, {"kind": "method", "line": 463, "name": "test_validate_rejects_control_chars", "signature": "def test_validate_rejects_control_chars(self)"}, {"kind": "method", "line": 468, "name": "test_validate_rejects_empty_files", "signature": "def test_validate_rejects_empty_files(self)"}, {"kind": "method", "line": 476, "name": "setUpClass", "signature": "def setUpClass(cls)"}, {"kind": "method", "line": 486, "name": "test_split_for_editor_chunks", "signature": "def test_split_for_editor_chunks(self)"}, {"kind": "method", "line": 493, "name": "test_split_rejects_long_line", "signature": "def test_split_rejects_long_line(self)"}, {"kind": "method", "line": 497, "name": "test_split_rejects_non_ascii", "signature": "def test_split_rejects_non_ascii(self)"}, {"kind": "method", "line": 501, "name": "test_exit_code_of", "signature": "def test_exit_code_of(self)"}, {"kind": "method", "line": 506, "name": "test_state_roundtrip", "signature": "def test_state_roundtrip(self)"}, {"kind": "method", "line": 517, "name": "__init__", "signature": "def __init__(self, exit_codes)"}, {"kind": "method", "line": 524, "name": "booted", "signature": "def booted(self)"}, {"kind": "method", "line": 527, "name": "boot", "signature": "def boot(self, timeout_ms)"}, {"kind": "method", "line": 531, "name": "write", "signature": "def write(self, path, content)"}, {"kind": "method", "line": 538, "name": "send", "signature": "def send(self, line, timeout_ms)"}, {"kind": "method", "line": 562, "name": "cat_body", "signature": "def cat_body(self, path, missing_ok)"}, {"kind": "class", "line": 569, "name": "_toolerror", "signature": "class _toolerror(Exception)"}, {"kind": "method", "line": 574, "name": "_cleanup_parts", "signature": "def _cleanup_parts(self, parts)"}, {"kind": "method", "line": 582, "name": "setUpClass", "signature": "def setUpClass(cls)"}, {"kind": "method", "line": 614, "name": "tearDownClass", "signature": "def tearDownClass(cls)"}, {"kind": "method", "line": 619, "name": "make_addon", "signature": "def make_addon(self)"}, {"kind": "method", "line": 641, "name": "test_install_success", "signature": "def test_install_success(self)"}, {"kind": "method", "line": 654, "name": "test_install_mismatch_aborts_and_cleans", "signature": "def test_install_mismatch_aborts_and_cleans(self)"}, {"kind": "method", "line": 668, "name": "test_install_multi_chunk_reassembly", "signature": "def test_install_multi_chunk_reassembly(self)"}, {"kind": "method", "line": 699, "name": "test_install_verify_failure_aborts", "signature": "def test_install_verify_failure_aborts(self)"}, {"kind": "method", "line": 706, "name": "test_install_build_failure_aborts", "signature": "def test_install_build_failure_aborts(self)"}, {"kind": "method", "line": 719, "name": "setUpClass", "signature": "def setUpClass(cls)"}, {"kind": "method", "line": 756, "name": "tearDownClass", "signature": "def tearDownClass(cls)"}, {"kind": "method", "line": 764, "name": "test_addons_list", "signature": "def test_addons_list(self)"}, {"kind": "method", "line": 770, "name": "test_install_fixture", "signature": "def test_install_fixture(self)"}, {"kind": "method", "line": 779, "name": "test_install_unknown_addon_fails", "signature": "def test_install_unknown_addon_fails(self)"}, {"kind": "method", "line": 286, "name": "guarded", "signature": "def guarded(name, params)"}, {"kind": "method", "line": 658, "name": "broken_cat", "signature": "def broken_cat(path, missing_ok)"}]}, {"doc": "MiniFS: minimal Unix-like filesystem for MiniOS.", "id": "minifs.c", "kind": "module", "label": "minifs.c", "language": "c", "sha256": "6bc1a4b4fd02064c", "symbol_count": 53, "symbols": [{"doc": "#include \"block.h\" #include \"ide.h\" #include \"lz4_kernel.h\" #define DE_NAME(de) ((const char *)((de) + 1)) #define DE_NAME_W(de) ((char *)((de) + 1)) static MiniFSSuper fs_sb; static unsigned char *fs_ibitmap; static unsigned char *fs_bbitmap; static unsigned int fs_lba_start; static unsigned int fs_next_txn; static int fs_mounted; /* ---- Compression wrappers ----", "kind": "function", "line": 23, "name": "minifs_compress", "signature": "unsigned int minifs_compress(const void *src, unsigned int src_len,\n ..."}, {"kind": "function", "line": 33, "name": "minifs_decompress", "signature": "unsigned int minifs_decompress(const void *src, unsigned int src_len,\n ..."}, {"kind": "function", "line": 44, "name": "minifs_crc16", "signature": "static unsigned short minifs_crc16(const void *data, unsigned int len)"}, {"kind": "function", "line": 56, "name": "minifs_crc32", "signature": "static unsigned int minifs_crc32(const void *data, unsigned int len)"}, {"kind": "function", "line": 68, "name": "roundup4", "signature": "static unsigned int roundup4(unsigned int v)"}, {"kind": "function", "line": 70, "name": "div_round_up", "signature": "static unsigned int div_round_up(unsigned int n, unsigned int d)"}, {"doc": "crc ^= (unsigned int)p[i]; for (j = 0; j < 8; j++) crc = (crc >> 1) ^ ((crc & 1) ? 0xEDB88320 : 0); } return crc ^ 0xFFFFFFFF; } static unsigned int roundup4(unsigned int v) { return (v + 3) & ~3u; } static unsigned int div_round_up(unsigned int n, unsigned int d) { return (n + d - 1) / d; } /* ---- Superblock I/O ----", "kind": "function", "line": 76, "name": "fs_write_super", "signature": "static int fs_write_super(void)"}, {"doc": "} /* ---- Superblock I/O ---- static int fs_write_super(void) { unsigned char buf[MINIFS_BLOCK_SIZE]; kmemset(buf, 0, MINIFS_BLOCK_SIZE); fs_sb.checksum = minifs_crc16(&fs_sb, sizeof(MiniFSSuper) - 2); kmemcpy(buf, &fs_sb, sizeof(MiniFSSuper)); return block_write(0, buf); } /* ---- Inode I/O ----", "kind": "function", "line": 87, "name": "fs_read_inode", "signature": "static int fs_read_inode(unsigned int num, MiniFSInode *out)"}, {"kind": "function", "line": 96, "name": "fs_write_inode", "signature": "static int fs_write_inode(unsigned int num, const MiniFSInode *in)"}, {"doc": "kmemcpy(out, buf + offset, sizeof(MiniFSInode)); return 0; } static int fs_write_inode(unsigned int num, const MiniFSInode *in) { unsigned int block = fs_sb.inode_table_start + (num / MINIFS_INODES_PER_BLOCK); unsigned int offset = (num % MINIFS_INODES_PER_BLOCK) * sizeof(MiniFSInode); unsigned char buf[MINIFS_BLOCK_SIZE]; if (block_read(block, buf) < 0) return -1; kmemcpy(buf + offset, in, sizeof(MiniFSInode)); return block_write(block, buf); } /* ---- Bitmap helpers ----", "kind": "function", "line": 107, "name": "bm_test", "signature": "static int bm_test(unsigned char *bm, unsigned int bit)"}, {"kind": "function", "line": 111, "name": "bm_set", "signature": "static void bm_set(unsigned char *bm, unsigned int bit)"}, {"kind": "function", "line": 115, "name": "bm_clear", "signature": "static void bm_clear(unsigned char *bm, unsigned int bit)"}, {"doc": "static int bm_test(unsigned char *bm, unsigned int bit) { return (bm[bit / 8] >> (bit % 8)) & 1; } static void bm_set(unsigned char *bm, unsigned int bit) { bm[bit / 8] |= (unsigned char)(1u << (bit % 8)); } static void bm_clear(unsigned char *bm, unsigned int bit) { bm[bit / 8] &= (unsigned char)~(1u << (bit % 8)); } /* ---- Block allocator ----", "kind": "function", "line": 121, "name": "minifs_alloc_block", "signature": "int minifs_alloc_block(void)"}, {"kind": "function", "line": 138, "name": "minifs_free_block", "signature": "void minifs_free_block(unsigned int block)"}, {"doc": "fs_sb.first_free_hint = (idx + 1) % total; return (int)idx; } } return -1; } void minifs_free_block(unsigned int block) { if (block >= fs_sb.total_blocks) return; bm_clear(fs_bbitmap, block); fs_sb.free_blocks++; } /* ---- Inode allocator ----", "kind": "function", "line": 146, "name": "minifs_alloc_inode", "signature": "int minifs_alloc_inode(void)"}, {"kind": "function", "line": 158, "name": "minifs_free_inode", "signature": "void minifs_free_inode(int num)"}, {"doc": "fs_sb.free_inodes--; return (int)i; } } return -1; } void minifs_free_inode(int num) { if (num < 0 || (unsigned int)num >= fs_sb.total_inodes) return; bm_clear(fs_ibitmap, (unsigned int)num); fs_sb.free_inodes++; } /* ---- Inode block mapping ----", "kind": "function", "line": 166, "name": "minifs_inode_get_block", "signature": "int minifs_inode_get_block(MiniFSInode *inode, unsigned int logblk,\n un..."}, {"kind": "function", "line": 189, "name": "fs_inode_set_block", "signature": "static int fs_inode_set_block(MiniFSInode *inode, unsigned int logblk,\n ..."}, {"kind": "function", "line": 235, "name": "minifs_inode_alloc_block", "signature": "int minifs_inode_alloc_block(MiniFSInode *inode, unsigned int logblk)"}, {"kind": "function", "line": 249, "name": "fs_inode_free_all_blocks", "signature": "static void fs_inode_free_all_blocks(MiniFSInode *inode)"}, {"kind": "function", "line": 319, "name": "journal_load_super", "signature": "static void journal_load_super(void)"}, {"kind": "function", "line": 335, "name": "journal_save_super", "signature": "static void journal_save_super(unsigned int state)"}, {"kind": "function", "line": 346, "name": "journal_save_entries", "signature": "static void journal_save_entries(void)"}, {"kind": "function", "line": 361, "name": "minifs_journal_begin", "signature": "void minifs_journal_begin(unsigned int txn_id)"}, {"kind": "function", "line": 368, "name": "minifs_journal_add_block", "signature": "void minifs_journal_add_block(unsigned int block)"}, {"kind": "function", "line": 393, "name": "minifs_journal_commit", "signature": "int minifs_journal_commit(unsigned int txn_id)"}, {"kind": "function", "line": 411, "name": "minifs_journal_recover", "signature": "void minifs_journal_recover(void)"}, {"doc": "kmemcpy(&e, ebuf + slot * sizeof(MiniFSJournalEntry), sizeof(MiniFSJournalEntry)); /* Restore the original block content unsigned char orig[MINIFS_BLOCK_SIZE]; block_read(data_base + i, orig); block_write(e.affected_blocks[0], orig); } journal_save_super(MINIFS_JSTATE_CLEAN); journal_load_super(); kprintf(\"minifs: journal recovery complete\\n\"); } /* ---- Path resolution ----", "kind": "function", "line": 451, "name": "fs_namecmp", "signature": "static int fs_namecmp(const char *a, unsigned char alen, const char *b)"}, {"kind": "function", "line": 460, "name": "minifs_dir_lookup", "signature": "int minifs_dir_lookup(int dir_ino, const char *name)"}, {"kind": "function", "line": 484, "name": "minifs_dir_add_entry", "signature": "int minifs_dir_add_entry(int dir_ino, const char *name, int child_ino,\n u..."}, {"kind": "function", "line": 598, "name": "minifs_dir_remove_entry", "signature": "int minifs_dir_remove_entry(int dir_ino, const char *name)"}, {"kind": "function", "line": 623, "name": "minifs_dir_read", "signature": "int minifs_dir_read(int dir_ino, int index, MiniFSDirEntry *out, char *name_out)"}, {"doc": "kmemcpy(out, de, sizeof(MiniFSDirEntry)); kmemcpy(name_out, DE_NAME(de), de->name_len); name_out[de->name_len] = 0; return 0; } count++; } off += de->rec_len; } } return -1; } /* ---- Resolve a path to an inode number ----", "kind": "function", "line": 657, "name": "minifs_resolve_path", "signature": "int minifs_resolve_path(const char *path)"}, {"doc": "if (*p) p++; continue; } if (len > MINIFS_MAX_FILENAME) return -1; kmemcpy(namebuf, start, len); namebuf[len] = 0; ino = minifs_dir_lookup(ino, namebuf); if (ino < 0) return -1; if (*p) p++; } return ino; } /* ---- File operations ----", "kind": "function", "line": 690, "name": "minifs_create", "signature": "int minifs_create(const char *path, unsigned short mode)"}, {"kind": "function", "line": 742, "name": "minifs_mkdir", "signature": "int minifs_mkdir(const char *path, unsigned short mode)"}, {"kind": "function", "line": 792, "name": "minifs_unlink", "signature": "int minifs_unlink(const char *path)"}, {"kind": "function", "line": 828, "name": "minifs_rmdir", "signature": "int minifs_rmdir(const char *path)"}, {"kind": "function", "line": 865, "name": "minifs_read", "signature": "int minifs_read(int inode_num, void *buf, unsigned int offset, unsigned int len)"}, {"kind": "function", "line": 929, "name": "minifs_write", "signature": "int minifs_write(int inode_num, const void *buf, unsigned int offset,\n unsigned i..."}, {"kind": "function", "line": 1005, "name": "minifs_truncate", "signature": "int minifs_truncate(int inode_num, unsigned int new_size)"}, {"kind": "function", "line": 1021, "name": "minifs_stat", "signature": "int minifs_stat(int inode_num, MiniFSInode *out)"}, {"kind": "function", "line": 1025, "name": "minifs_access", "signature": "int minifs_access(const char *path)"}, {"doc": "inode.size = new_size; inode.checksum = minifs_crc32(&inode, sizeof(MiniFSInode) - 4); return fs_write_inode((unsigned int)inode_num, &inode); } int minifs_stat(int inode_num, MiniFSInode *out) { return fs_read_inode((unsigned int)inode_num, out); } int minifs_access(const char *path) { return minifs_resolve_path(path) >= 0 ? 0 : -1; } /* ---- Init / mount / mkfs ----", "kind": "function", "line": 1031, "name": "minifs_init", "signature": "void minifs_init(void)"}, {"kind": "function", "line": 1039, "name": "minifs_get_lba_start", "signature": "unsigned int minifs_get_lba_start(void)"}, {"kind": "function", "line": 1041, "name": "minifs_is_mounted", "signature": "int minifs_is_mounted(void)"}, {"kind": "function", "line": 1042, "name": "minifs_mount", "signature": "int minifs_mount(void)"}, {"kind": "function", "line": 1105, "name": "minifs_mkfs", "signature": "int minifs_mkfs(unsigned int total_blocks)"}, {"kind": "function", "line": 1176, "name": "minifs_sync", "signature": "int minifs_sync(void)"}, {"kind": "function", "line": 1191, "name": "minifs_file_open", "signature": "MiniFSFile *minifs_file_open(int inode_num, int flags)"}, {"kind": "function", "line": 1205, "name": "minifs_file_close", "signature": "int minifs_file_close(MiniFSFile *f)"}, {"kind": "function", "line": 1212, "name": "minifs_get_total_blocks", "signature": "unsigned int minifs_get_total_blocks(void)"}, {"kind": "macro", "line": 12, "name": "DE_NAME"}, {"kind": "macro", "line": 13, "name": "DE_NAME_W"}]}, {"doc": "ifndef MINIFS_H define MINIFS_H MiniFS: a minimal Unix-like filesystem for MiniOS.", "id": "minifs.h", "kind": "module", "label": "minifs.h", "language": "h", "sha256": "7c097ccd642f2c22", "symbol_count": 31, "symbols": [{"kind": "macro", "line": 2, "name": "MINIFS_H"}, {"kind": "macro", "line": 7, "name": "MINIFS_MAGIC"}, {"kind": "macro", "line": 9, "name": "MINIFS_VERSION"}, {"kind": "macro", "line": 10, "name": "MINIFS_BLOCK_SIZE"}, {"kind": "macro", "line": 11, "name": "MINIFS_MAX_FILENAME"}, {"kind": "macro", "line": 12, "name": "MINIFS_ROOT_INODE"}, {"kind": "macro", "line": 13, "name": "MINIFS_INODES_PER_BLOCK"}, {"kind": "macro", "line": 14, "name": "MINIFS_DIR_ENTRIES_PER_BLOCK"}, {"kind": "macro", "line": 15, "name": "MINIFS_S_IFMT"}, {"kind": "macro", "line": 17, "name": "MINIFS_S_IFREG"}, {"kind": "macro", "line": 18, "name": "MINIFS_S_IFDIR"}, {"kind": "macro", "line": 19, "name": "MINIFS_S_IFLNK"}, {"kind": "macro", "line": 20, "name": "MINIFS_S_IRWXU"}, {"kind": "macro", "line": 21, "name": "MINIFS_S_IRWXG"}, {"kind": "macro", "line": 22, "name": "MINIFS_S_IRWXO"}, {"kind": "macro", "line": 23, "name": "MINIFS_FT_FILE"}, {"kind": "macro", "line": 25, "name": "MINIFS_FT_DIR"}, {"kind": "macro", "line": 26, "name": "MINIFS_FT_SYMLINK"}, {"kind": "macro", "line": 27, "name": "MINIFS_INODE_COMPRESSED"}, {"kind": "macro", "line": 74, "name": "MINIFS_DIR_ENTRY_HDR_SIZE"}, {"kind": "macro", "line": 76, "name": "MINIFS_JOURNAL_BLOCKS"}, {"kind": "macro", "line": 78, "name": "MINIFS_JOURNAL_MAX_ENTRIES"}, {"kind": "macro", "line": 79, "name": "MINIFS_JOP_WRITE"}, {"kind": "macro", "line": 80, "name": "MINIFS_JOP_CREATE"}, {"kind": "macro", "line": 81, "name": "MINIFS_JOP_DELETE"}, {"kind": "macro", "line": 82, "name": "MINIFS_JOP_MKDIR"}, {"kind": "macro", "line": 83, "name": "MINIFS_JOP_RMDIR"}, {"kind": "macro", "line": 84, "name": "MINIFS_JOP_TRUNCATE"}, {"kind": "macro", "line": 85, "name": "MINIFS_JOP_COMMIT"}, {"kind": "macro", "line": 86, "name": "MINIFS_JSTATE_CLEAN"}, {"kind": "macro", "line": 88, "name": "MINIFS_JSTATE_DIRTY"}]}, {"id": "minifs_dump.py", "kind": "module", "label": "minifs_dump.py", "language": "py", "sha256": "66129ad54e4c9a50", "symbol_count": 12, "symbols": [{"kind": "function", "line": 13, "name": "u16", "signature": "def u16(d, o)"}, {"kind": "function", "line": 14, "name": "u32", "signature": "def u32(d, o)"}, {"kind": "function", "line": 16, "name": "mode_str", "signature": "def mode_str(m)"}, {"kind": "class", "line": 25, "name": "FS", "signature": "class FS"}, {"kind": "method", "line": 105, "name": "main", "signature": "def main()"}, {"kind": "method", "line": 26, "name": "__init__", "signature": "def __init__(self, fn)"}, {"kind": "method", "line": 29, "name": "blk", "signature": "def blk(self, n)"}, {"kind": "method", "line": 30, "name": "_sb", "signature": "def _sb(self)"}, {"kind": "method", "line": 38, "name": "inode", "signature": "def inode(self, i)"}, {"kind": "method", "line": 47, "name": "read", "signature": "def read(self, ino)"}, {"kind": "method", "line": 67, "name": "resolve", "signature": "def resolve(self, path)"}, {"kind": "method", "line": 86, "name": "ls", "signature": "def ls(self, ino, prefix)"}]}, {"id": "minifs_fsck.py", "kind": "module", "label": "minifs_fsck.py", "language": "py", "sha256": "05066a08385e60bd", "symbol_count": 14, "symbols": [{"kind": "function", "line": 13, "name": "u16", "signature": "def u16(d, o)"}, {"kind": "function", "line": 14, "name": "u32", "signature": "def u32(d, o)"}, {"kind": "class", "line": 16, "name": "FSCK", "signature": "class FSCK"}, {"kind": "method", "line": 97, "name": "main", "signature": "def main()"}, {"kind": "method", "line": 17, "name": "__init__", "signature": "def __init__(self, fn)"}, {"kind": "method", "line": 23, "name": "blk", "signature": "def blk(self, n)"}, {"kind": "method", "line": 24, "name": "_sb", "signature": "def _sb(self)"}, {"kind": "method", "line": 30, "name": "inode", "signature": "def inode(self, i)"}, {"kind": "method", "line": 37, "name": "read", "signature": "def read(self, ino)"}, {"kind": "method", "line": 52, "name": "err", "signature": "def err(self, msg)"}, {"kind": "method", "line": 54, "name": "mark_block", "signature": "def mark_block(self, n)"}, {"kind": "method", "line": 59, "name": "scan_inode", "signature": "def scan_inode(self, i)"}, {"kind": "method", "line": 68, "name": "scan_dir", "signature": "def scan_dir(self, ino)"}, {"kind": "method", "line": 82, "name": "run", "signature": "def run(self)"}]}, {"id": "mkfs.minifs.py", "kind": "module", "label": "mkfs.minifs.py", "language": "py", "sha256": "64b559f851410b48", "symbol_count": 19, "symbols": [{"kind": "function", "line": 22, "name": "roundup4", "signature": "def roundup4(v)"}, {"kind": "function", "line": 25, "name": "div_round_up", "signature": "def div_round_up(n, d)"}, {"kind": "function", "line": 28, "name": "crc16", "signature": "def crc16(data)"}, {"kind": "function", "line": 36, "name": "crc32", "signature": "def crc32(data)"}, {"kind": "class", "line": 44, "name": "MiniFS", "signature": "class MiniFS"}, {"kind": "method", "line": 225, "name": "main", "signature": "def main()"}, {"kind": "method", "line": 45, "name": "__init__", "signature": "def __init__(self, total_blocks)"}, {"kind": "method", "line": 67, "name": "mark_inodes_used", "signature": "def mark_inodes_used(self, start, count)"}, {"kind": "method", "line": 71, "name": "mark_blocks_used", "signature": "def mark_blocks_used(self, start, count)"}, {"kind": "method", "line": 75, "name": "alloc_inode", "signature": "def alloc_inode(self)"}, {"kind": "method", "line": 81, "name": "alloc_block", "signature": "def alloc_block(self)"}, {"kind": "method", "line": 87, "name": "create_root", "signature": "def create_root(self)"}, {"kind": "method", "line": 95, "name": "create_inode", "signature": "def create_inode(self, mode)"}, {"kind": "method", "line": 102, "name": "inode_set_size", "signature": "def inode_set_size(self, ino, size)"}, {"kind": "method", "line": 106, "name": "inode_set_block", "signature": "def inode_set_block(self, ino, logblk, phys)"}, {"kind": "method", "line": 120, "name": "add_dir_entry", "signature": "def add_dir_entry(self, dir_ino, name, child_ino, ftype)"}, {"kind": "method", "line": 158, "name": "write_file", "signature": "def write_file(self, parent_ino, name, data)"}, {"kind": "method", "line": 175, "name": "write_dir", "signature": "def write_dir(self, parent_ino, name)"}, {"kind": "method", "line": 181, "name": "serialize", "signature": "def serialize(self)"}]}, {"id": "mkramdisk.py", "kind": "module", "label": "mkramdisk.py", "language": "py", "sha256": "e890ba2ab94eb112", "symbol_count": 2, "symbols": [{"kind": "function", "line": 20, "name": "pack_name", "signature": "def pack_name(path, common)"}, {"kind": "function", "line": 30, "name": "main", "signature": "def main()"}]}, {"doc": "mkroots.sh - regenerate tls_roots.h from the DER files in tls_roots_src/. Provenance of each root (2026 web PKI reality; everything a real site chains to is one of these): isrg_root_x1.der Let's Encrypt ISRG Root X1 (RSA, older chains) https://letsencrypt.org/certs/isrg-root-x1.pem isrg_root_x2.der Let's Encrypt ISRG Root X2 (ECDSA P-384, current) https://letsencrypt.org/certs/isrg-root-x2.pem digicert_global_root_g2.der DigiCert Global Root G2 (RSA) https://cacerts.digicert.com/DigiCertGlobalRootG2.crt globalsign_root_r3.der GlobalSign Root CA R3 (RSA) https://secure.globalsign.com/cacert/root-r3.crt gts_root_r4.der Google Trust Services Root R4 (ECDSA P-384) https://pki.goog/repo/certs/gtsr4.pem sslcom_ecc_2022.der SSL.com TLS ECC Root CA 2022 (Cloudflare ECC chains) sslcom_rsa_2022.der SSL.com TLS RSA Root CA 2022 (Cloudflare RSA chains) The two SSL.com roots have no stable public URL; they are extracted from the certificate chain example.com serves (openssl s_client -showcerts, ECDHE-ECDSA and ECDHE-RSA respectively). The build never runs this script: tls_roots.h is a committed input, regenerated only when the root set changes.", "id": "mkroots.sh", "kind": "module", "label": "mkroots.sh", "language": "sh", "sha256": "785077624212c370", "symbol_count": 0, "symbols": []}, {"doc": "Mutation testing for MiniOS. Each mutation is applied to the source in place, the disk image is rebuilt and the behavioural suite is run in fail-fast mode. A mutant that survives a full green suite exposes a gap that must be closed by adding a scenario, never by deleting the mutant. The sources are backed up before the first mutation and restored on every exit path, including interrupts. A mutation whose expression matches nothing is reported as broken rather than surviving: `sed -i` exits zero when it changes nothing, which would otherwise rebuild pristine sources and look like a test gap. Mutation format: \"name | sed -i expression | file\"", "id": "mutate.sh", "kind": "module", "label": "mutate.sh", "language": "sh", "sha256": "a01bc09d995ea4ee", "symbol_count": 2, "symbols": [{"kind": "function", "line": 24, "name": "restore_sources"}, {"kind": "function", "line": 31, "name": "cleanup"}]}, {"doc": "MiniOS network stack: rtl8139 under QEMU slirp user networking.", "id": "net.c", "kind": "module", "label": "net.c", "language": "c", "sha256": "0b8a0adc86d17617", "symbol_count": 84, "symbols": [{"kind": "struct", "line": 250, "name": "net_arp_entry"}, {"kind": "struct", "line": 376, "name": "net_dns_state"}, {"kind": "struct", "line": 544, "name": "net_tcp_sock"}, {"kind": "function", "line": 24, "name": "outb_port", "signature": "static void outb_port(unsigned short port, unsigned char val)"}, {"kind": "function", "line": 28, "name": "inb_port", "signature": "static unsigned char inb_port(unsigned short port)"}, {"kind": "function", "line": 34, "name": "outw_port", "signature": "static void outw_port(unsigned short port, unsigned short val)"}, {"kind": "function", "line": 38, "name": "outl_port", "signature": "static void outl_port(unsigned short port, unsigned int val)"}, {"kind": "function", "line": 42, "name": "inw_port", "signature": "static unsigned short inw_port(unsigned short port)"}, {"kind": "function", "line": 48, "name": "inl_port", "signature": "static unsigned int inl_port(unsigned short port)"}, {"kind": "function", "line": 54, "name": "net_reg8", "signature": "static unsigned char net_reg8(unsigned short off)"}, {"kind": "function", "line": 56, "name": "net_reg8_w", "signature": "static void net_reg8_w(unsigned short off, unsigned char v)"}, {"kind": "function", "line": 57, "name": "net_reg16", "signature": "static unsigned short net_reg16(unsigned short off)"}, {"kind": "function", "line": 58, "name": "net_reg16_w", "signature": "static void net_reg16_w(unsigned short off, unsigned short v)"}, {"kind": "function", "line": 59, "name": "net_reg32", "signature": "static unsigned int net_reg32(unsigned short off)"}, {"kind": "function", "line": 60, "name": "net_reg32_w", "signature": "static void net_reg32_w(unsigned short off, unsigned int v)"}, {"doc": "define NET_REG_CR 0x37 define NET_REG_TSD0 0x10 define NET_REG_TSAD0 0x20 define NET_REG_RBSTART 0x30 define NET_REG_CAPR 0x38 define NET_REG_CBR 0x3A define NET_REG_9346CR 0x50", "kind": "function", "line": 69, "name": "pci_read32", "signature": "static unsigned int pci_read32(unsigned bus, unsigned dev, unsigned func, unsigned reg)"}, {"kind": "function", "line": 74, "name": "pci_write32", "signature": "static void pci_write32(unsigned bus, unsigned dev, unsigned func, unsigned reg, unsigned int val)"}, {"doc": "#define NET_REG_CBR 0x3A #define NET_REG_9346CR 0x50 static unsigned int pci_read32(unsigned bus, unsigned dev, unsigned func, unsigned reg) { outl_port(0xCF8, 0x80000000u | (bus << 16) | (dev << 11) | (func << 8) | (reg & 0xFC)); return inl_port(0xCFC); } static void pci_write32(unsigned bus, unsigned dev, unsigned func, unsigned reg, unsigned int val) { outl_port(0xCF8, 0x80000000u | (bus << 16) | (dev << 11) | (func << 8) | (reg & 0xFC)); outl_port(0xCFC, val); } /* Find the rtl8139 and return its I/O base, 0 when absent.", "kind": "function", "line": 81, "name": "net_find_rtl8139", "signature": "static unsigned short net_find_rtl8139(void)"}, {"kind": "function", "line": 99, "name": "net_rdtsc", "signature": "static unsigned long net_rdtsc(void)"}, {"kind": "function", "line": 105, "name": "net_time_init", "signature": "static void net_time_init(void)"}, {"kind": "function", "line": 119, "name": "net_time_ms", "signature": "unsigned long net_time_ms(void)"}, {"kind": "function", "line": 136, "name": "net_rtl_reset", "signature": "static void net_rtl_reset(void)"}, {"kind": "function", "line": 145, "name": "net_rtl_init", "signature": "static void net_rtl_init(void)"}, {"kind": "function", "line": 177, "name": "net_tx_frame", "signature": "static int net_tx_frame(const unsigned char *frame, unsigned len)"}, {"doc": "================================================================ Byte helpers * ================================================================", "kind": "function", "line": 211, "name": "net_put16", "signature": "static void net_put16(unsigned char *p, unsigned short v)"}, {"kind": "function", "line": 216, "name": "net_put32", "signature": "static void net_put32(unsigned char *p, unsigned int v)"}, {"kind": "function", "line": 223, "name": "net_get16", "signature": "static unsigned short net_get16(const unsigned char *p)"}, {"kind": "function", "line": 227, "name": "net_get32", "signature": "static unsigned int net_get32(const unsigned char *p)"}, {"kind": "function", "line": 232, "name": "net_checksum", "signature": "static unsigned short net_checksum(const void *data, unsigned len)"}, {"kind": "function", "line": 257, "name": "net_arp_store", "signature": "static void net_arp_store(const unsigned char *ip, const unsigned char *mac)"}, {"kind": "function", "line": 272, "name": "net_arp_lookup", "signature": "static int net_arp_lookup(const unsigned char *ip, unsigned char *mac_out)"}, {"kind": "function", "line": 283, "name": "net_arp_request", "signature": "static void net_arp_request(const unsigned char *ip)"}, {"doc": "kmemcpy(frame + 6, net_mac, NET_ETH_ALEN); net_put16(frame + 12, NET_ETHERTYPE_ARP); net_put16(frame + 14, 1); /* ethernet net_put16(frame + 16, 0x0800); /* IPv4 frame[18] = 6; frame[19] = 4; net_put16(frame + 20, NET_ARP_REQUEST); kmemcpy(frame + 22, net_mac, NET_ETH_ALEN); kmemcpy(frame + 28, net_our_ip, 4); kmemcpy(frame + 38, ip, 4); net_tx_frame(frame, 42); } /* Resolve an IP on the 10.0.2.0/24 link. Retries, bounded timeout.", "kind": "function", "line": 302, "name": "net_arp_resolve", "signature": "static int net_arp_resolve(const unsigned char *ip, unsigned char *mac_out)"}, {"doc": "================================================================ IPv4 / ICMP / UDP / DNS * ================================================================ static unsigned short net_ip_id; static unsigned short net_icmp_id = 0x4D49; static unsigned short net_udp_port = NET_EPHEMERAL_MIN; static unsigned int net_tx_bytes; static unsigned int net_rx_bytes; /* Send a frame on the link: dst IP decides the destination MAC.", "kind": "function", "line": 327, "name": "net_ip_send", "signature": "static int net_ip_send(const unsigned char *dip, unsigned char proto,\n cons..."}, {"kind": "function", "line": 362, "name": "net_udp_send", "signature": "static int net_udp_send(const unsigned char *dip, unsigned short sport,\n u..."}, {"doc": "net_put16(pkt + 6, 0); /* checksum optional for UDP kmemcpy(pkt + 8, data, len); return net_ip_send(dip, NET_PROTO_UDP, pkt, total); } struct net_dns_state { unsigned short id; unsigned char ip[4]; int done; }; static struct net_dns_state net_dns; /* Parse a DNS response for the first A record.", "kind": "function", "line": 385, "name": "net_dns_parse", "signature": "static void net_dns_parse(const unsigned char *data, unsigned len)"}, {"doc": "rtype = net_get16(data + pos); rdlen = net_get16(data + pos + 8); pos += 10; if (pos + rdlen > len) return; if (rtype == 1 && rdlen == 4) { kmemcpy(net_dns.ip, data + pos, 4); net_dns.done = 1; return; } pos += rdlen; } } /* Blocking A-record lookup against NET_DNS.", "kind": "function", "line": 421, "name": "net_dns_resolve", "signature": "static int net_dns_resolve(const char *host, unsigned char ip_out[4])"}, {"kind": "function", "line": 477, "name": "net_udp_send", "signature": "net_udp_send((const unsigned char[])"}, {"kind": "function", "line": 491, "name": "net_icmp_rx", "signature": "static void net_icmp_rx(const unsigned char *ip, unsigned len)"}, {"kind": "function", "line": 514, "name": "net_ping", "signature": "static int net_ping(const unsigned char ip[4])"}, {"kind": "function", "line": 566, "name": "net_sock_alloc", "signature": "static struct net_tcp_sock *net_sock_alloc(void)"}, {"kind": "function", "line": 579, "name": "net_sock_index", "signature": "static int net_sock_index(const struct net_tcp_sock *s)"}, {"doc": "return &net_sockets[i]; } } return 0; } static int net_sock_index(const struct net_tcp_sock *s) { int i; for (i = 0; i < NET_SOCKETS; i++) if (&net_sockets[i] == s) return i; return -1; } /* Compute the TCP checksum over a pseudo header + segment.", "kind": "function", "line": 588, "name": "net_tcp_checksum", "signature": "static unsigned short net_tcp_checksum(const unsigned char *src, const unsigned char *dst,\n ..."}, {"doc": "const unsigned char *seg, unsigned len) { unsigned char buf[NET_TX_MAX + 12]; unsigned total = 12 + len; kmemcpy(buf, src, 4); kmemcpy(buf + 4, dst, 4); buf[8] = 0; buf[9] = NET_PROTO_TCP; net_put16(buf + 10, (unsigned short)len); kmemcpy(buf + 12, seg, len); if (total & 1) buf[total++] = 0; return net_checksum(buf, total); } /* UDP checksum over pseudo header + datagram (may be 0 = not computed).", "kind": "function", "line": 604, "name": "net_udp_checksum_ok", "signature": "static int net_udp_checksum_ok(const unsigned char *src, const unsigned char *dst,\n ..."}, {"kind": "function", "line": 619, "name": "net_tcp_xmit", "signature": "static int net_tcp_xmit(struct net_tcp_sock *s, unsigned flags,\n const uns..."}, {"doc": "seg[21] = 0x04; /* len 4 net_put16(seg + 22, NET_TCP_MSS); } else { seg[12] = 0x50; } kmemcpy(seg + hlen, data, len); net_put16(seg + 16, net_tcp_checksum(net_our_ip, s->dip, s->sport, s->dport, seg, hlen + len)); if (!net_ip_send(s->dip, NET_PROTO_TCP, seg, hlen + len)) return 0; if (fresh && (flags & (0x02 | 0x08 | 0x01))) s->seq += len + ((flags & (0x02 | 0x01)) ? 1 : 0); return 1; } /* Process one received TCP segment.", "kind": "function", "line": 651, "name": "net_tcp_rx", "signature": "static void net_tcp_rx(const unsigned char *ip, unsigned len)"}, {"doc": "} if (flags & 0x10) { /* ACK: peer acks our data if (s->tx_pending && (int)(ack - (s->tx_seq + s->tx_len)) >= 0) { s->tx_pending = 0; } if (s->state == NET_TCP_FIN_SENT && (int)(ack - (s->seq)) >= 0) { s->state = NET_TCP_DEAD; } } } } /* Blocking connect of an allocated socket to an IPv4 address.", "kind": "function", "line": 737, "name": "net_tcp_connect_into", "signature": "static int net_tcp_connect_into(struct net_tcp_sock *s, const unsigned char ip[4],\n ..."}, {"doc": "unsigned long retry = net_time_ms() + NET_RETRY_MS; while (net_time_ms() < retry && s->state == NET_TCP_SYN_SENT) net_poll_rx(); if (s->state == NET_TCP_SYN_SENT) net_tcp_xmit(s, 0x02, 0, 0, 0); } if (s->state != NET_TCP_ESTABLISHED) { s->in_use = 0; s->state = NET_TCP_CLOSED; return 0; } return 1; } /* Blocking send (stop-and-wait, one outstanding segment).", "kind": "function", "line": 764, "name": "net_tcp_send", "signature": "static int net_tcp_send(struct net_tcp_sock *s, const char *buf, int len)"}, {"doc": "net_time_ms() < deadline) { unsigned long retry = net_time_ms() + NET_RETRY_MS; while (net_time_ms() < retry && s->tx_pending) net_poll_rx(); if (s->tx_pending) net_tcp_xmit(s, 0x18, s->tx_buf, chunk, 0); } if (s->tx_pending || s->state != NET_TCP_ESTABLISHED) return sent ? sent : -1; buf += chunk; len -= (int)chunk; sent += (int)chunk; } return sent; } /* Blocking receive; 0 = EOF (FIN).", "kind": "function", "line": 790, "name": "net_tcp_recv", "signature": "static int net_tcp_recv(struct net_tcp_sock *s, char *buf, int len)"}, {"kind": "function", "line": 827, "name": "net_tcp_close", "signature": "static void net_tcp_close(struct net_tcp_sock *s)"}, {"doc": "================================================================ Receive path: NIC -> ethernet -> ARP/IP -> demux * ================================================================", "kind": "function", "line": 847, "name": "net_rx_handle_frame", "signature": "static void net_rx_handle_frame(const unsigned char *frame, unsigned len)"}, {"kind": "function", "line": 916, "name": "net_poll_rx", "signature": "void net_poll_rx(void)"}, {"doc": "================================================================ Public libc-style API * ================================================================", "kind": "function", "line": 956, "name": "net_open", "signature": "int net_open(void)"}, {"kind": "function", "line": 962, "name": "net_connect", "signature": "int net_connect(const char *host, unsigned short port)"}, {"kind": "function", "line": 971, "name": "net_send", "signature": "int net_send(int fd, const char *buf, int len)"}, {"kind": "function", "line": 976, "name": "net_recv", "signature": "int net_recv(int fd, char *buf, int len)"}, {"kind": "function", "line": 981, "name": "net_recv_timeout", "signature": "int net_recv_timeout(int fd, char *buf, int len, unsigned long timeout_ms)"}, {"kind": "function", "line": 986, "name": "net_close", "signature": "void net_close(int fd)"}, {"doc": "================================================================ Linux syscall ABI * ================================================================", "kind": "function", "line": 995, "name": "net_sys_socket", "signature": "long net_sys_socket(long a1, long a2, long a3)"}, {"kind": "function", "line": 1004, "name": "net_sys_connect", "signature": "long net_sys_connect(long fd, long sockaddr, long addrlen)"}, {"kind": "function", "line": 1017, "name": "net_sys_sendto", "signature": "long net_sys_sendto(long fd, long buf, long len, long flags, long to, long tolen)"}, {"kind": "function", "line": 1027, "name": "net_sys_recvfrom", "signature": "long net_sys_recvfrom(long fd, long buf, long len, long flags, long from, long fromlen)"}, {"kind": "function", "line": 1037, "name": "net_sys_shutdown", "signature": "long net_sys_shutdown(long fd, long how)"}, {"kind": "function", "line": 1044, "name": "net_sys_close", "signature": "long net_sys_close(long fd)"}, {"kind": "function", "line": 1051, "name": "net_sys_poll", "signature": "long net_sys_poll(long fds, long nfds, long timeout_ms)"}, {"doc": "MiniOS syscall 200: resolve a hostname, returned as a network-order * 32-bit address (like inet_addr), or -1 on failure.", "kind": "function", "line": 1082, "name": "net_sys_dns", "signature": "long net_sys_dns(long host)"}, {"doc": "================================================================ Shell commands * ================================================================", "kind": "function", "line": 1092, "name": "net_parse_ip", "signature": "static int net_parse_ip(const char *text, unsigned char ip[4])"}, {"kind": "function", "line": 1117, "name": "net_cmd_status", "signature": "void net_cmd_status(void)"}, {"kind": "function", "line": 1131, "name": "net_cmd_ping", "signature": "void net_cmd_ping(const char *ip_text)"}, {"kind": "function", "line": 1142, "name": "net_cmd_dns", "signature": "void net_cmd_dns(const char *host)"}, {"doc": "================================================================ Init and symbol registration * ================================================================", "kind": "function", "line": 1155, "name": "net_register_symbols", "signature": "void net_register_symbols(void)"}, {"kind": "function", "line": 1163, "name": "net_init", "signature": "void net_init(void)"}, {"kind": "macro", "line": 61, "name": "NET_REG_CR"}, {"kind": "macro", "line": 63, "name": "NET_REG_TSD0"}, {"kind": "macro", "line": 64, "name": "NET_REG_TSAD0"}, {"kind": "macro", "line": 65, "name": "NET_REG_RBSTART"}, {"kind": "macro", "line": 66, "name": "NET_REG_CAPR"}, {"kind": "macro", "line": 67, "name": "NET_REG_CBR"}, {"kind": "macro", "line": 68, "name": "NET_REG_9346CR"}, {"kind": "macro", "line": 537, "name": "NET_TCP_CLOSED"}, {"kind": "macro", "line": 539, "name": "NET_TCP_SYN_SENT"}, {"kind": "macro", "line": 540, "name": "NET_TCP_ESTABLISHED"}, {"kind": "macro", "line": 541, "name": "NET_TCP_FIN_SENT"}, {"kind": "macro", "line": 542, "name": "NET_TCP_DEAD"}]}, {"doc": "ifndef NET_H define NET_H ========== Fixed slirp configuration (QEMU -nic user) ==========", "id": "net.h", "kind": "module", "label": "net.h", "language": "h", "sha256": "c29117c3ace6d14a", "symbol_count": 34, "symbols": [{"kind": "macro", "line": 2, "name": "NET_H"}, {"kind": "macro", "line": 5, "name": "NET_IP_ADDR"}, {"kind": "macro", "line": 6, "name": "NET_NETMASK"}, {"kind": "macro", "line": 7, "name": "NET_GATEWAY"}, {"kind": "macro", "line": 8, "name": "NET_DNS"}, {"kind": "macro", "line": 11, "name": "NET_PCI_VENDOR"}, {"kind": "macro", "line": 12, "name": "NET_PCI_DEVICE"}, {"kind": "macro", "line": 18, "name": "NET_RX_BUF_LEN"}, {"kind": "macro", "line": 19, "name": "NET_RX_ALIGN"}, {"kind": "macro", "line": 22, "name": "NET_RCR"}, {"kind": "macro", "line": 23, "name": "NET_MAX_FRAME"}, {"kind": "macro", "line": 24, "name": "NET_TX_SLOTS"}, {"kind": "macro", "line": 27, "name": "NET_ETH_ALEN"}, {"kind": "macro", "line": 28, "name": "NET_ETHERTYPE_IP"}, {"kind": "macro", "line": 29, "name": "NET_ETHERTYPE_ARP"}, {"kind": "macro", "line": 32, "name": "NET_PROTO_ICMP"}, {"kind": "macro", "line": 33, "name": "NET_PROTO_TCP"}, {"kind": "macro", "line": 34, "name": "NET_PROTO_UDP"}, {"kind": "macro", "line": 37, "name": "NET_ARP_CACHE"}, {"kind": "macro", "line": 38, "name": "NET_ARP_REQUEST"}, {"kind": "macro", "line": 39, "name": "NET_ARP_REPLY"}, {"kind": "macro", "line": 42, "name": "NET_TCP_MSS"}, {"kind": "macro", "line": 43, "name": "NET_TCP_WINDOW"}, {"kind": "macro", "line": 46, "name": "NET_SOCK_RX_BUF"}, {"kind": "macro", "line": 47, "name": "NET_RX_RING_SIZE"}, {"kind": "macro", "line": 48, "name": "NET_SOCKETS"}, {"kind": "macro", "line": 49, "name": "NET_DNS_PORT"}, {"kind": "macro", "line": 50, "name": "NET_EPHEMERAL_MIN"}, {"kind": "macro", "line": 51, "name": "NET_DNS_TRIES"}, {"kind": "macro", "line": 52, "name": "NET_DNS_TMO_MS"}, {"kind": "macro", "line": 53, "name": "NET_CONNECT_TMO_S"}, {"kind": "macro", "line": 54, "name": "NET_RETRY_MS"}, {"kind": "macro", "line": 55, "name": "NET_TX_MAX"}, {"kind": "macro", "line": 58, "name": "NET_FD_BASE"}]}, {"doc": "include \"kernel.h\" define PIT_CH2_DATA 0x42 define PIT_CH2_CMD 0x43 define SPEAKER_PORT 0x61 define PIT_FREQ 1193182u", "id": "pcspk.c", "kind": "module", "label": "pcspk.c", "language": "c", "sha256": "1bb04d4aa1540b9a", "symbol_count": 7, "symbols": [{"doc": "define PIT_CH2_DATA 0x42 define PIT_CH2_CMD 0x43 define SPEAKER_PORT 0x61 define PIT_FREQ 1193182u", "kind": "function", "line": 7, "name": "pcspk_init", "signature": "void pcspk_init(void)"}, {"kind": "function", "line": 11, "name": "pcspk_tone", "signature": "void pcspk_tone(unsigned freq)"}, {"kind": "function", "line": 25, "name": "pcspk_off", "signature": "void pcspk_off(void)"}, {"kind": "macro", "line": 2, "name": "PIT_CH2_DATA"}, {"kind": "macro", "line": 4, "name": "PIT_CH2_CMD"}, {"kind": "macro", "line": 5, "name": "SPEAKER_PORT"}, {"kind": "macro", "line": 6, "name": "PIT_FREQ"}]}, {"doc": "ifndef PCSPK_H define PCSPK_H", "id": "pcspk.h", "kind": "module", "label": "pcspk.h", "language": "h", "sha256": "263cc616a4c63a99", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 2, "name": "PCSPK_H"}]}, {"id": "progs/asm/cp.s", "kind": "module", "label": "cp.s", "language": "s", "sha256": "34a0ae76f164c7de", "symbol_count": 2, "symbols": [{"kind": "function", "line": 3, "name": "main"}, {"kind": "function", "line": 328, "name": "_start"}]}, {"id": "progs/asm/fib.s", "kind": "module", "label": "fib.s", "language": "s", "sha256": "e4cc2d98e3d0b67f", "symbol_count": 3, "symbols": [{"kind": "function", "line": 3, "name": "fib"}, {"kind": "function", "line": 61, "name": "main"}, {"kind": "function", "line": 82, "name": "_start"}]}, {"id": "progs/asm/freedom.s", "kind": "module", "label": "freedom.s", "language": "s", "sha256": "11cb0786854644b7", "symbol_count": 91, "symbols": [{"kind": "function", "line": 3, "name": "f_host"}, {"kind": "function", "line": 7, "name": "f_path"}, {"kind": "function", "line": 11, "name": "f_port"}, {"kind": "function", "line": 15, "name": "f_secure"}, {"kind": "function", "line": 19, "name": "f_loc"}, {"kind": "function", "line": 23, "name": "f_redir"}, {"kind": "function", "line": 27, "name": "f_status"}, {"kind": "function", "line": 31, "name": "f_clen"}, {"kind": "function", "line": 35, "name": "f_has_clen"}, {"kind": "function", "line": 39, "name": "f_chunked"}, {"kind": "function", "line": 43, "name": "f_hdr"}, {"kind": "function", "line": 47, "name": "f_hlen"}, {"kind": "function", "line": 51, "name": "f_tag"}, {"kind": "function", "line": 55, "name": "f_suppress"}, {"kind": "function", "line": 59, "name": "f_comment"}, {"kind": "function", "line": 63, "name": "f_cmdash"}, {"kind": "function", "line": 67, "name": "f_tagn"}, {"kind": "function", "line": 71, "name": "f_tagnlen"}, {"kind": "function", "line": 75, "name": "f_ent"}, {"kind": "function", "line": 79, "name": "f_entlen"}, {"kind": "function", "line": 83, "name": "f_ws"}, {"kind": "function", "line": 87, "name": "f_utbuf"}, {"kind": "function", "line": 91, "name": "f_utlen"}, {"kind": "function", "line": 95, "name": "f_utrem"}, {"kind": "function", "line": 99, "name": "f_attr_on"}, {"kind": "function", "line": 103, "name": "f_waitq"}, {"kind": "function", "line": 107, "name": "f_inval"}, {"kind": "function", "line": 111, "name": "f_inval2"}, {"kind": "function", "line": 115, "name": "f_attr"}, {"kind": "function", "line": 119, "name": "f_attrlen"}, {"kind": "function", "line": 123, "name": "f_val"}, {"kind": "function", "line": 127, "name": "f_vallen"}, {"kind": "function", "line": 131, "name": "f_id"}, {"kind": "function", "line": 135, "name": "f_idlen"}, {"kind": "function", "line": 139, "name": "f_cls"}, {"kind": "function", "line": 143, "name": "f_clslen"}, {"kind": "function", "line": 147, "name": "f_href"}, {"kind": "function", "line": 151, "name": "f_hreflen"}, {"kind": "function", "line": 155, "name": "f_rel_ss"}, {"kind": "function", "line": 159, "name": "f_styleattr"}, {"kind": "function", "line": 163, "name": "f_stylelen"}, {"kind": "function", "line": 167, "name": "f_dump_css"}, {"kind": "function", "line": 171, "name": "f_dump_dom"}, {"kind": "function", "line": 175, "name": "f_mode"}, {"kind": "function", "line": 179, "name": "f_rawcap"}, {"kind": "function", "line": 183, "name": "f_depth"}, {"kind": "function", "line": 187, "name": "f_dom"}, {"kind": "function", "line": 191, "name": "f_domlen"}, {"kind": "function", "line": 195, "name": "f_css"}, {"kind": "function", "line": 199, "name": "f_csslen"}, {"kind": "function", "line": 203, "name": "f_linkhost"}, {"kind": "function", "line": 207, "name": "f_linkpath"}, {"kind": "function", "line": 211, "name": "f_linkn"}, {"kind": "function", "line": 215, "name": "f_cstage"}, {"kind": "function", "line": 219, "name": "f_csize"}, {"kind": "function", "line": 223, "name": "f_crem"}, {"kind": "function", "line": 227, "name": "f_bdone"}, {"kind": "function", "line": 231, "name": "atoi"}, {"kind": "function", "line": 317, "name": "append"}, {"kind": "function", "line": 402, "name": "ci_lower"}, {"kind": "function", "line": 451, "name": "ci_starts"}, {"kind": "function", "line": 524, "name": "ci_eq"}, {"kind": "function", "line": 621, "name": "ci_index"}, {"kind": "function", "line": 681, "name": "looks_like_url"}, {"kind": "function", "line": 755, "name": "has_scheme"}, {"kind": "function", "line": 1030, "name": "make_search"}, {"kind": "function", "line": 1266, "name": "split_url"}, {"kind": "function", "line": 1781, "name": "resolve_redirect"}, {"kind": "function", "line": 2306, "name": "put_ws"}, {"kind": "function", "line": 2352, "name": "put_utf"}, {"kind": "function", "line": 2888, "name": "put_text"}, {"kind": "function", "line": 2991, "name": "put_entity"}, {"kind": "function", "line": 3828, "name": "css_append"}, {"kind": "function", "line": 3899, "name": "css_line"}, {"kind": "function", "line": 3958, "name": "dom_append"}, {"kind": "function", "line": 4029, "name": "dom_space"}, {"kind": "function", "line": 4063, "name": "dom_nl"}, {"kind": "function", "line": 4097, "name": "record_attr"}, {"kind": "function", "line": 4435, "name": "is_void_tag"}, {"kind": "function", "line": 4757, "name": "classify_tag"}, {"kind": "function", "line": 5994, "name": "body_byte"}, {"kind": "function", "line": 7239, "name": "head_line"}, {"kind": "function", "line": 7500, "name": "parse_head"}, {"kind": "function", "line": 7717, "name": "recv_body"}, {"kind": "function", "line": 7778, "name": "send_all"}, {"kind": "function", "line": 7853, "name": "fetch"}, {"kind": "function", "line": 9331, "name": "fetch_css"}, {"kind": "function", "line": 10143, "name": "print_css_dump"}, {"kind": "function", "line": 10243, "name": "print_dom_dump"}, {"kind": "function", "line": 10322, "name": "main"}, {"kind": "function", "line": 11800, "name": "_start"}]}, {"id": "progs/asm/http.s", "kind": "module", "label": "http.s", "language": "s", "sha256": "c9733b03c202f81a", "symbol_count": 3, "symbols": [{"kind": "function", "line": 3, "name": "atoi"}, {"kind": "function", "line": 89, "name": "main"}, {"kind": "function", "line": 698, "name": "_start"}]}, {"id": "progs/asm/ldhello.s", "kind": "module", "label": "ldhello.s", "language": "s", "sha256": "1eda6c9f40c5f161", "symbol_count": 2, "symbols": [{"kind": "function", "line": 3, "name": "main"}, {"kind": "function", "line": 14, "name": "_start"}]}, {"id": "progs/asm/w1.s", "kind": "module", "label": "w1.s", "language": "s", "sha256": "cfd7d7a01734e3a0", "symbol_count": 2, "symbols": [{"kind": "function", "line": 3, "name": "main"}, {"kind": "function", "line": 37, "name": "_start"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: the automap code include include \"deh_main.h\" include \"z_zone.h\" include \"doomkeys.h\" include \"doomdef.h\" include \"st_stuff.h\" include \"p_local.h\" include \"w_wad.h\"", "id": "progs/doomgeneric/am_map.c", "kind": "module", "label": "am_map.c", "language": "c", "sha256": "b26cc70e5581beb6", "symbol_count": 82, "symbols": [{"doc": "Calculates the slope and slope according to the x-axis of a line segment in map coordinates (with the upright y-axis n' all) so that it can be used with the brain-dead drawing stuff.", "kind": "function", "line": 273, "name": "AM_getIslope", "signature": "void\nAM_getIslope\n( mline_t*\tml,\n islope_t*\tis )"}, {"kind": "function", "line": 293, "name": "AM_activateNewScale", "signature": "void AM_activateNewScale(void)"}, {"kind": "function", "line": 308, "name": "AM_saveScaleAndLoc", "signature": "void AM_saveScaleAndLoc(void)"}, {"kind": "function", "line": 319, "name": "AM_restoreScaleAndLoc", "signature": "void AM_restoreScaleAndLoc(void)"}, {"doc": "adds a marker at the current location", "kind": "function", "line": 343, "name": "AM_addMark", "signature": "void AM_addMark(void)"}, {"doc": "Determines bounding box of all vertices, sets global variables controlling zoom range.", "kind": "function", "line": 355, "name": "AM_findMinMaxBoundaries", "signature": "void AM_findMinMaxBoundaries(void)"}, {"kind": "function", "line": 395, "name": "AM_changeWindowLoc", "signature": "void AM_changeWindowLoc(void)"}, {"kind": "function", "line": 424, "name": "AM_initVariables", "signature": "void AM_initVariables(void)"}, {"kind": "function", "line": 480, "name": "AM_loadPics", "signature": "void AM_loadPics(void)"}, {"kind": "function", "line": 492, "name": "AM_unloadPics", "signature": "void AM_unloadPics(void)"}, {"kind": "function", "line": 504, "name": "AM_clearMarks", "signature": "void AM_clearMarks(void)"}, {"doc": "should be called at the start of every level right now, i figure it out myself", "kind": "function", "line": 518, "name": "AM_LevelInit", "signature": "void AM_LevelInit(void)"}, {"kind": "function", "line": 541, "name": "AM_Stop", "signature": "void AM_Stop (void)"}, {"kind": "function", "line": 554, "name": "AM_Start", "signature": "void AM_Start (void)"}, {"doc": "set the window scale to the maximum size", "kind": "function", "line": 573, "name": "AM_minOutWindowScale", "signature": "void AM_minOutWindowScale(void)"}, {"doc": "set the window scale to the minimum size", "kind": "function", "line": 583, "name": "AM_maxOutWindowScale", "signature": "void AM_maxOutWindowScale(void)"}, {"doc": "Handle events (user inputs) in automap mode", "kind": "function", "line": 594, "name": "AM_Responder", "signature": "boolean\nAM_Responder\n( event_t*\tev )"}, {"doc": "Zooming", "kind": "function", "line": 742, "name": "AM_changeWindowScale", "signature": "void AM_changeWindowScale(void)"}, {"kind": "function", "line": 761, "name": "AM_doFollowPlayer", "signature": "void AM_doFollowPlayer(void)"}, {"kind": "function", "line": 785, "name": "AM_updateLightLev", "signature": "void AM_updateLightLev(void)"}, {"doc": "Updates on Game Tick", "kind": "function", "line": 806, "name": "AM_Ticker", "signature": "void AM_Ticker (void)"}, {"doc": "Clear automap frame buffer.", "kind": "function", "line": 834, "name": "AM_clearFB", "signature": "void AM_clearFB(int color)"}, {"doc": "Automap clipping of lines. Based on Cohen-Sutherland clipping algorithm but with a slightly faster reject and precalculated slopes. If the speed is needed, use a hash algorithm to handle the common cases.", "kind": "function", "line": 847, "name": "AM_clipMline", "signature": "boolean\nAM_clipMline\n( mline_t*\tml,\n fline_t*\tfl )"}, {"doc": "Classic Bresenham w/ whatever optimizations needed for speed", "kind": "function", "line": 983, "name": "AM_drawFline", "signature": "void\nAM_drawFline\n( fline_t*\tfl,\n int\t\tcolor )"}, {"doc": "Clip lines, draw visible part sof lines.", "kind": "function", "line": 1061, "name": "AM_drawMline", "signature": "void\nAM_drawMline\n( mline_t*\tml,\n int\t\tcolor )"}, {"doc": "Draws flat (floor/ceiling tile) aligned grid lines.", "kind": "function", "line": 1077, "name": "AM_drawGrid", "signature": "void AM_drawGrid(int color)"}, {"doc": "Determines visible lines, draws them. This is LineDef based, not LineSeg based.", "kind": "function", "line": 1123, "name": "AM_drawWalls", "signature": "void AM_drawWalls(void)"}, {"doc": "Rotation in 2D. Used to rotate player arrow line character.", "kind": "function", "line": 1178, "name": "AM_rotate", "signature": "void\nAM_rotate\n( fixed_t*\tx,\n fixed_t*\ty,\n angle_t\ta )"}, {"kind": "function", "line": 1196, "name": "AM_drawLineCharacter", "signature": "void\nAM_drawLineCharacter\n( mline_t*\tlineguy,\n int\t\tlineguylines,\n fixed_t\tscale,\n angle_t\tang..."}, {"kind": "function", "line": 1245, "name": "AM_drawPlayers", "signature": "void AM_drawPlayers(void)"}, {"kind": "function", "line": 1289, "name": "AM_drawThings", "signature": "void\nAM_drawThings\n( int\tcolors,\n int \tcolorrange)"}, {"kind": "function", "line": 1310, "name": "AM_drawMarks", "signature": "void AM_drawMarks(void)"}, {"kind": "function", "line": 1331, "name": "AM_drawCrosshair", "signature": "void AM_drawCrosshair(int color)"}, {"kind": "function", "line": 1337, "name": "AM_Drawer", "signature": "void AM_Drawer (void)"}, {"kind": "macro", "line": 50, "name": "REDS"}, {"kind": "macro", "line": 51, "name": "REDRANGE"}, {"kind": "macro", "line": 52, "name": "BLUES"}, {"kind": "macro", "line": 53, "name": "BLUERANGE"}, {"kind": "macro", "line": 54, "name": "GREENS"}, {"kind": "macro", "line": 55, "name": "GREENRANGE"}, {"kind": "macro", "line": 56, "name": "GRAYS"}, {"kind": "macro", "line": 57, "name": "GRAYSRANGE"}, {"kind": "macro", "line": 58, "name": "BROWNS"}, {"kind": "macro", "line": 59, "name": "BROWNRANGE"}, {"kind": "macro", "line": 60, "name": "YELLOWS"}, {"kind": "macro", "line": 61, "name": "YELLOWRANGE"}, {"kind": "macro", "line": 62, "name": "BLACK"}, {"kind": "macro", "line": 63, "name": "WHITE"}, {"kind": "macro", "line": 66, "name": "BACKGROUND"}, {"kind": "macro", "line": 67, "name": "YOURCOLORS"}, {"kind": "macro", "line": 68, "name": "YOURRANGE"}, {"kind": "macro", "line": 69, "name": "WALLCOLORS"}, {"kind": "macro", "line": 70, "name": "WALLRANGE"}, {"kind": "macro", "line": 71, "name": "TSWALLCOLORS"}, {"kind": "macro", "line": 72, "name": "TSWALLRANGE"}, {"kind": "macro", "line": 73, "name": "FDWALLCOLORS"}, {"kind": "macro", "line": 74, "name": "FDWALLRANGE"}, {"kind": "macro", "line": 75, "name": "CDWALLCOLORS"}, {"kind": "macro", "line": 76, "name": "CDWALLRANGE"}, {"kind": "macro", "line": 77, "name": "THINGCOLORS"}, {"kind": "macro", "line": 78, "name": "THINGRANGE"}, {"kind": "macro", "line": 79, "name": "SECRETWALLCOLORS"}, {"kind": "macro", "line": 80, "name": "SECRETWALLRANGE"}, {"kind": "macro", "line": 81, "name": "GRIDCOLORS"}, {"kind": "macro", "line": 82, "name": "GRIDRANGE"}, {"kind": "macro", "line": 83, "name": "XHAIRCOLORS"}, {"kind": "macro", "line": 86, "name": "AM_NUMMARKPOINTS"}, {"kind": "macro", "line": 90, "name": "INITSCALEMTOF"}, {"kind": "macro", "line": 93, "name": "F_PANINC"}, {"kind": "macro", "line": 96, "name": "M_ZOOMIN"}, {"kind": "macro", "line": 99, "name": "M_ZOOMOUT"}, {"kind": "macro", "line": 102, "name": "FTOM"}, {"kind": "macro", "line": 103, "name": "MTOF"}, {"kind": "macro", "line": 105, "name": "CXMTOF"}, {"kind": "macro", "line": 106, "name": "CYMTOF"}, {"kind": "macro", "line": 109, "name": "LINE_NEVERSEE"}, {"kind": "macro", "line": 143, "name": "R"}, {"kind": "macro", "line": 154, "name": "R"}, {"kind": "macro", "line": 175, "name": "R"}, {"kind": "macro", "line": 183, "name": "R"}, {"kind": "macro", "line": 867, "name": "DOOUTCODE"}, {"kind": "macro", "line": 1009, "name": "PUTDOT"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: AutoMap module. ifndef __AMMAP_H__ define __AMMAP_H__ include \"d_event.h\" include \"m_cheat.h\" Used by ST StatusBar stuff. define AM_MSGHEADER (('a'<<24)+('m'<<16)) define AM_MSGENTERED (AM_MSGHEADER | ('e'<<8)) define AM_MSGEXITED (AM_MSGHEADER | ('x'<<8))", "id": "progs/doomgeneric/am_map.h", "kind": "module", "label": "am_map.h", "language": "h", "sha256": "675257f181196842", "symbol_count": 4, "symbols": [{"kind": "macro", "line": 20, "name": "__AMMAP_H__"}, {"kind": "macro", "line": 26, "name": "AM_MSGHEADER"}, {"kind": "macro", "line": 27, "name": "AM_MSGENTERED"}, {"kind": "macro", "line": 28, "name": "AM_MSGEXITED"}]}, {"doc": "config.hin. Generated from configure.ac by autoheader.", "id": "progs/doomgeneric/config.h", "kind": "module", "label": "config.h", "language": "h", "sha256": "07384b139305b90c", "symbol_count": 16, "symbols": [{"kind": "macro", "line": 10, "name": "HAVE_INTTYPES_H"}, {"kind": "macro", "line": 46, "name": "HAVE_STDINT_H"}, {"kind": "macro", "line": 49, "name": "HAVE_STDLIB_H"}, {"kind": "macro", "line": 52, "name": "HAVE_STRINGS_H"}, {"kind": "macro", "line": 55, "name": "HAVE_STRING_H"}, {"kind": "macro", "line": 61, "name": "HAVE_SYS_TYPES_H"}, {"kind": "macro", "line": 67, "name": "PACKAGE"}, {"kind": "macro", "line": 73, "name": "PACKAGE_NAME"}, {"kind": "macro", "line": 76, "name": "PACKAGE_STRING"}, {"kind": "macro", "line": 79, "name": "PACKAGE_TARNAME"}, {"kind": "macro", "line": 82, "name": "PACKAGE_URL"}, {"kind": "macro", "line": 85, "name": "PACKAGE_VERSION"}, {"kind": "macro", "line": 88, "name": "PROGRAM_PREFIX"}, {"kind": "macro", "line": 91, "name": "STDC_HEADERS"}, {"kind": "macro", "line": 94, "name": "VERSION"}, {"kind": "macro", "line": 100, "name": "FILES_DIR"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Printed strings for translation. English language support (default). ifndef __D_ENGLSH__ define __D_ENGLSH__ Printed strings for translation D_Main.C define D_DEVSTR\t\"Development mode ON.\\n\"", "id": "progs/doomgeneric/d_englsh.h", "kind": "module", "label": "d_englsh.h", "language": "h", "sha256": "7c94c53e9ca22494", "symbol_count": 286, "symbols": [{"kind": "macro", "line": 21, "name": "__D_ENGLSH__"}, {"kind": "macro", "line": 30, "name": "D_DEVSTR"}, {"kind": "macro", "line": 31, "name": "D_CDROM"}, {"kind": "macro", "line": 36, "name": "PRESSKEY"}, {"kind": "macro", "line": 37, "name": "PRESSYN"}, {"kind": "macro", "line": 38, "name": "QUITMSG"}, {"kind": "macro", "line": 39, "name": "LOADNET"}, {"kind": "macro", "line": 40, "name": "QLOADNET"}, {"kind": "macro", "line": 41, "name": "QSAVESPOT"}, {"kind": "macro", "line": 42, "name": "SAVEDEAD"}, {"kind": "macro", "line": 43, "name": "QSPROMPT"}, {"kind": "macro", "line": 44, "name": "QLPROMPT"}, {"kind": "macro", "line": 45, "name": "NEWGAME"}, {"kind": "macro", "line": 49, "name": "NIGHTMARE"}, {"kind": "macro", "line": 53, "name": "SWSTRING"}, {"kind": "macro", "line": 57, "name": "MSGOFF"}, {"kind": "macro", "line": 59, "name": "MSGON"}, {"kind": "macro", "line": 60, "name": "NETEND"}, {"kind": "macro", "line": 61, "name": "ENDGAME"}, {"kind": "macro", "line": 62, "name": "DOSY"}, {"kind": "macro", "line": 64, "name": "DETAILHI"}, {"kind": "macro", "line": 66, "name": "DETAILLO"}, {"kind": "macro", "line": 67, "name": "GAMMALVL0"}, {"kind": "macro", "line": 68, "name": "GAMMALVL1"}, {"kind": "macro", "line": 69, "name": "GAMMALVL2"}, {"kind": "macro", "line": 70, "name": "GAMMALVL3"}, {"kind": "macro", "line": 71, "name": "GAMMALVL4"}, {"kind": "macro", "line": 72, "name": "EMPTYSTRING"}, {"kind": "macro", "line": 77, "name": "GOTARMOR"}, {"kind": "macro", "line": 78, "name": "GOTMEGA"}, {"kind": "macro", "line": 79, "name": "GOTHTHBONUS"}, {"kind": "macro", "line": 80, "name": "GOTARMBONUS"}, {"kind": "macro", "line": 81, "name": "GOTSTIM"}, {"kind": "macro", "line": 82, "name": "GOTMEDINEED"}, {"kind": "macro", "line": 83, "name": "GOTMEDIKIT"}, {"kind": "macro", "line": 84, "name": "GOTSUPER"}, {"kind": "macro", "line": 85, "name": "GOTBLUECARD"}, {"kind": "macro", "line": 87, "name": "GOTYELWCARD"}, {"kind": "macro", "line": 88, "name": "GOTREDCARD"}, {"kind": "macro", "line": 89, "name": "GOTBLUESKUL"}, {"kind": "macro", "line": 90, "name": "GOTYELWSKUL"}, {"kind": "macro", "line": 91, "name": "GOTREDSKULL"}, {"kind": "macro", "line": 92, "name": "GOTINVUL"}, {"kind": "macro", "line": 94, "name": "GOTBERSERK"}, {"kind": "macro", "line": 95, "name": "GOTINVIS"}, {"kind": "macro", "line": 96, "name": "GOTSUIT"}, {"kind": "macro", "line": 97, "name": "GOTMAP"}, {"kind": "macro", "line": 98, "name": "GOTVISOR"}, {"kind": "macro", "line": 99, "name": "GOTMSPHERE"}, {"kind": "macro", "line": 100, "name": "GOTCLIP"}, {"kind": "macro", "line": 102, "name": "GOTCLIPBOX"}, {"kind": "macro", "line": 103, "name": "GOTROCKET"}, {"kind": "macro", "line": 104, "name": "GOTROCKBOX"}, {"kind": "macro", "line": 105, "name": "GOTCELL"}, {"kind": "macro", "line": 106, "name": "GOTCELLBOX"}, {"kind": "macro", "line": 107, "name": "GOTSHELLS"}, {"kind": "macro", "line": 108, "name": "GOTSHELLBOX"}, {"kind": "macro", "line": 109, "name": "GOTBACKPACK"}, {"kind": "macro", "line": 110, "name": "GOTBFG9000"}, {"kind": "macro", "line": 112, "name": "GOTCHAINGUN"}, {"kind": "macro", "line": 113, "name": "GOTCHAINSAW"}, {"kind": "macro", "line": 114, "name": "GOTLAUNCHER"}, {"kind": "macro", "line": 115, "name": "GOTPLASMA"}, {"kind": "macro", "line": 116, "name": "GOTSHOTGUN"}, {"kind": "macro", "line": 117, "name": "GOTSHOTGUN2"}, {"kind": "macro", "line": 122, "name": "PD_BLUEO"}, {"kind": "macro", "line": 123, "name": "PD_REDO"}, {"kind": "macro", "line": 124, "name": "PD_YELLOWO"}, {"kind": "macro", "line": 125, "name": "PD_BLUEK"}, {"kind": "macro", "line": 126, "name": "PD_REDK"}, {"kind": "macro", "line": 127, "name": "PD_YELLOWK"}, {"kind": "macro", "line": 132, "name": "GGSAVED"}, {"kind": "macro", "line": 137, "name": "HUSTR_MSGU"}, {"kind": "macro", "line": 138, "name": "HUSTR_E1M1"}, {"kind": "macro", "line": 140, "name": "HUSTR_E1M2"}, {"kind": "macro", "line": 141, "name": "HUSTR_E1M3"}, {"kind": "macro", "line": 142, "name": "HUSTR_E1M4"}, {"kind": "macro", "line": 143, "name": "HUSTR_E1M5"}, {"kind": "macro", "line": 144, "name": "HUSTR_E1M6"}, {"kind": "macro", "line": 145, "name": "HUSTR_E1M7"}, {"kind": "macro", "line": 146, "name": "HUSTR_E1M8"}, {"kind": "macro", "line": 147, "name": "HUSTR_E1M9"}, {"kind": "macro", "line": 148, "name": "HUSTR_E2M1"}, {"kind": "macro", "line": 150, "name": "HUSTR_E2M2"}, {"kind": "macro", "line": 151, "name": "HUSTR_E2M3"}, {"kind": "macro", "line": 152, "name": "HUSTR_E2M4"}, {"kind": "macro", "line": 153, "name": "HUSTR_E2M5"}, {"kind": "macro", "line": 154, "name": "HUSTR_E2M6"}, {"kind": "macro", "line": 155, "name": "HUSTR_E2M7"}, {"kind": "macro", "line": 156, "name": "HUSTR_E2M8"}, {"kind": "macro", "line": 157, "name": "HUSTR_E2M9"}, {"kind": "macro", "line": 158, "name": "HUSTR_E3M1"}, {"kind": "macro", "line": 160, "name": "HUSTR_E3M2"}, {"kind": "macro", "line": 161, "name": "HUSTR_E3M3"}, {"kind": "macro", "line": 162, "name": "HUSTR_E3M4"}, {"kind": "macro", "line": 163, "name": "HUSTR_E3M5"}, {"kind": "macro", "line": 164, "name": "HUSTR_E3M6"}, {"kind": "macro", "line": 165, "name": "HUSTR_E3M7"}, {"kind": "macro", "line": 166, "name": "HUSTR_E3M8"}, {"kind": "macro", "line": 167, "name": "HUSTR_E3M9"}, {"kind": "macro", "line": 168, "name": "HUSTR_E4M1"}, {"kind": "macro", "line": 170, "name": "HUSTR_E4M2"}, {"kind": "macro", "line": 171, "name": "HUSTR_E4M3"}, {"kind": "macro", "line": 172, "name": "HUSTR_E4M4"}, {"kind": "macro", "line": 173, "name": "HUSTR_E4M5"}, {"kind": "macro", "line": 174, "name": "HUSTR_E4M6"}, {"kind": "macro", "line": 175, "name": "HUSTR_E4M7"}, {"kind": "macro", "line": 176, "name": "HUSTR_E4M8"}, {"kind": "macro", "line": 177, "name": "HUSTR_E4M9"}, {"kind": "macro", "line": 178, "name": "HUSTR_1"}, {"kind": "macro", "line": 180, "name": "HUSTR_2"}, {"kind": "macro", "line": 181, "name": "HUSTR_3"}, {"kind": "macro", "line": 182, "name": "HUSTR_4"}, {"kind": "macro", "line": 183, "name": "HUSTR_5"}, {"kind": "macro", "line": 184, "name": "HUSTR_6"}, {"kind": "macro", "line": 185, "name": "HUSTR_7"}, {"kind": "macro", "line": 186, "name": "HUSTR_8"}, {"kind": "macro", "line": 187, "name": "HUSTR_9"}, {"kind": "macro", "line": 188, "name": "HUSTR_10"}, {"kind": "macro", "line": 189, "name": "HUSTR_11"}, {"kind": "macro", "line": 190, "name": "HUSTR_12"}, {"kind": "macro", "line": 192, "name": "HUSTR_13"}, {"kind": "macro", "line": 193, "name": "HUSTR_14"}, {"kind": "macro", "line": 194, "name": "HUSTR_15"}, {"kind": "macro", "line": 195, "name": "HUSTR_16"}, {"kind": "macro", "line": 196, "name": "HUSTR_17"}, {"kind": "macro", "line": 197, "name": "HUSTR_18"}, {"kind": "macro", "line": 198, "name": "HUSTR_19"}, {"kind": "macro", "line": 199, "name": "HUSTR_20"}, {"kind": "macro", "line": 200, "name": "HUSTR_21"}, {"kind": "macro", "line": 202, "name": "HUSTR_22"}, {"kind": "macro", "line": 203, "name": "HUSTR_23"}, {"kind": "macro", "line": 204, "name": "HUSTR_24"}, {"kind": "macro", "line": 205, "name": "HUSTR_25"}, {"kind": "macro", "line": 206, "name": "HUSTR_26"}, {"kind": "macro", "line": 207, "name": "HUSTR_27"}, {"kind": "macro", "line": 208, "name": "HUSTR_28"}, {"kind": "macro", "line": 209, "name": "HUSTR_29"}, {"kind": "macro", "line": 210, "name": "HUSTR_30"}, {"kind": "macro", "line": 211, "name": "HUSTR_31"}, {"kind": "macro", "line": 213, "name": "HUSTR_32"}, {"kind": "macro", "line": 214, "name": "PHUSTR_1"}, {"kind": "macro", "line": 216, "name": "PHUSTR_2"}, {"kind": "macro", "line": 217, "name": "PHUSTR_3"}, {"kind": "macro", "line": 218, "name": "PHUSTR_4"}, {"kind": "macro", "line": 219, "name": "PHUSTR_5"}, {"kind": "macro", "line": 220, "name": "PHUSTR_6"}, {"kind": "macro", "line": 221, "name": "PHUSTR_7"}, {"kind": "macro", "line": 222, "name": "PHUSTR_8"}, {"kind": "macro", "line": 223, "name": "PHUSTR_9"}, {"kind": "macro", "line": 224, "name": "PHUSTR_10"}, {"kind": "macro", "line": 225, "name": "PHUSTR_11"}, {"kind": "macro", "line": 226, "name": "PHUSTR_12"}, {"kind": "macro", "line": 228, "name": "PHUSTR_13"}, {"kind": "macro", "line": 229, "name": "PHUSTR_14"}, {"kind": "macro", "line": 230, "name": "PHUSTR_15"}, {"kind": "macro", "line": 231, "name": "PHUSTR_16"}, {"kind": "macro", "line": 232, "name": "PHUSTR_17"}, {"kind": "macro", "line": 233, "name": "PHUSTR_18"}, {"kind": "macro", "line": 234, "name": "PHUSTR_19"}, {"kind": "macro", "line": 235, "name": "PHUSTR_20"}, {"kind": "macro", "line": 236, "name": "PHUSTR_21"}, {"kind": "macro", "line": 238, "name": "PHUSTR_22"}, {"kind": "macro", "line": 239, "name": "PHUSTR_23"}, {"kind": "macro", "line": 240, "name": "PHUSTR_24"}, {"kind": "macro", "line": 241, "name": "PHUSTR_25"}, {"kind": "macro", "line": 242, "name": "PHUSTR_26"}, {"kind": "macro", "line": 243, "name": "PHUSTR_27"}, {"kind": "macro", "line": 244, "name": "PHUSTR_28"}, {"kind": "macro", "line": 245, "name": "PHUSTR_29"}, {"kind": "macro", "line": 246, "name": "PHUSTR_30"}, {"kind": "macro", "line": 247, "name": "PHUSTR_31"}, {"kind": "macro", "line": 249, "name": "PHUSTR_32"}, {"kind": "macro", "line": 250, "name": "THUSTR_1"}, {"kind": "macro", "line": 252, "name": "THUSTR_2"}, {"kind": "macro", "line": 253, "name": "THUSTR_3"}, {"kind": "macro", "line": 254, "name": "THUSTR_4"}, {"kind": "macro", "line": 255, "name": "THUSTR_5"}, {"kind": "macro", "line": 256, "name": "THUSTR_6"}, {"kind": "macro", "line": 257, "name": "THUSTR_7"}, {"kind": "macro", "line": 258, "name": "THUSTR_8"}, {"kind": "macro", "line": 259, "name": "THUSTR_9"}, {"kind": "macro", "line": 260, "name": "THUSTR_10"}, {"kind": "macro", "line": 261, "name": "THUSTR_11"}, {"kind": "macro", "line": 262, "name": "THUSTR_12"}, {"kind": "macro", "line": 264, "name": "THUSTR_13"}, {"kind": "macro", "line": 265, "name": "THUSTR_14"}, {"kind": "macro", "line": 266, "name": "THUSTR_15"}, {"kind": "macro", "line": 267, "name": "THUSTR_16"}, {"kind": "macro", "line": 268, "name": "THUSTR_17"}, {"kind": "macro", "line": 269, "name": "THUSTR_18"}, {"kind": "macro", "line": 270, "name": "THUSTR_19"}, {"kind": "macro", "line": 271, "name": "THUSTR_20"}, {"kind": "macro", "line": 272, "name": "THUSTR_21"}, {"kind": "macro", "line": 274, "name": "THUSTR_22"}, {"kind": "macro", "line": 275, "name": "THUSTR_23"}, {"kind": "macro", "line": 276, "name": "THUSTR_24"}, {"kind": "macro", "line": 277, "name": "THUSTR_25"}, {"kind": "macro", "line": 278, "name": "THUSTR_26"}, {"kind": "macro", "line": 279, "name": "THUSTR_27"}, {"kind": "macro", "line": 280, "name": "THUSTR_28"}, {"kind": "macro", "line": 281, "name": "THUSTR_29"}, {"kind": "macro", "line": 282, "name": "THUSTR_30"}, {"kind": "macro", "line": 283, "name": "THUSTR_31"}, {"kind": "macro", "line": 285, "name": "THUSTR_32"}, {"kind": "macro", "line": 286, "name": "HUSTR_CHATMACRO1"}, {"kind": "macro", "line": 288, "name": "HUSTR_CHATMACRO2"}, {"kind": "macro", "line": 289, "name": "HUSTR_CHATMACRO3"}, {"kind": "macro", "line": 290, "name": "HUSTR_CHATMACRO4"}, {"kind": "macro", "line": 291, "name": "HUSTR_CHATMACRO5"}, {"kind": "macro", "line": 292, "name": "HUSTR_CHATMACRO6"}, {"kind": "macro", "line": 293, "name": "HUSTR_CHATMACRO7"}, {"kind": "macro", "line": 294, "name": "HUSTR_CHATMACRO8"}, {"kind": "macro", "line": 295, "name": "HUSTR_CHATMACRO9"}, {"kind": "macro", "line": 296, "name": "HUSTR_CHATMACRO0"}, {"kind": "macro", "line": 297, "name": "HUSTR_TALKTOSELF1"}, {"kind": "macro", "line": 299, "name": "HUSTR_TALKTOSELF2"}, {"kind": "macro", "line": 300, "name": "HUSTR_TALKTOSELF3"}, {"kind": "macro", "line": 301, "name": "HUSTR_TALKTOSELF4"}, {"kind": "macro", "line": 302, "name": "HUSTR_TALKTOSELF5"}, {"kind": "macro", "line": 303, "name": "HUSTR_MESSAGESENT"}, {"kind": "macro", "line": 308, "name": "HUSTR_PLRGREEN"}, {"kind": "macro", "line": 310, "name": "HUSTR_PLRINDIGO"}, {"kind": "macro", "line": 311, "name": "HUSTR_PLRBROWN"}, {"kind": "macro", "line": 312, "name": "HUSTR_PLRRED"}, {"kind": "macro", "line": 313, "name": "HUSTR_KEYGREEN"}, {"kind": "macro", "line": 315, "name": "HUSTR_KEYINDIGO"}, {"kind": "macro", "line": 316, "name": "HUSTR_KEYBROWN"}, {"kind": "macro", "line": 317, "name": "HUSTR_KEYRED"}, {"kind": "macro", "line": 322, "name": "AMSTR_FOLLOWON"}, {"kind": "macro", "line": 324, "name": "AMSTR_FOLLOWOFF"}, {"kind": "macro", "line": 325, "name": "AMSTR_GRIDON"}, {"kind": "macro", "line": 327, "name": "AMSTR_GRIDOFF"}, {"kind": "macro", "line": 328, "name": "AMSTR_MARKEDSPOT"}, {"kind": "macro", "line": 330, "name": "AMSTR_MARKSCLEARED"}, {"kind": "macro", "line": 335, "name": "STSTR_MUS"}, {"kind": "macro", "line": 337, "name": "STSTR_NOMUS"}, {"kind": "macro", "line": 338, "name": "STSTR_DQDON"}, {"kind": "macro", "line": 339, "name": "STSTR_DQDOFF"}, {"kind": "macro", "line": 340, "name": "STSTR_KFAADDED"}, {"kind": "macro", "line": 342, "name": "STSTR_FAADDED"}, {"kind": "macro", "line": 343, "name": "STSTR_NCON"}, {"kind": "macro", "line": 345, "name": "STSTR_NCOFF"}, {"kind": "macro", "line": 346, "name": "STSTR_BEHOLD"}, {"kind": "macro", "line": 348, "name": "STSTR_BEHOLDX"}, {"kind": "macro", "line": 349, "name": "STSTR_CHOPPERS"}, {"kind": "macro", "line": 351, "name": "STSTR_CLEV"}, {"kind": "macro", "line": 356, "name": "E1TEXT"}, {"kind": "macro", "line": 372, "name": "E2TEXT"}, {"kind": "macro", "line": 392, "name": "E3TEXT"}, {"kind": "macro", "line": 412, "name": "E4TEXT"}, {"kind": "macro", "line": 434, "name": "C1TEXT"}, {"kind": "macro", "line": 450, "name": "C2TEXT"}, {"kind": "macro", "line": 472, "name": "C3TEXT"}, {"kind": "macro", "line": 486, "name": "C4TEXT"}, {"kind": "macro", "line": 507, "name": "C5TEXT"}, {"kind": "macro", "line": 517, "name": "C6TEXT"}, {"kind": "macro", "line": 525, "name": "P1TEXT"}, {"kind": "macro", "line": 542, "name": "P2TEXT"}, {"kind": "macro", "line": 553, "name": "P3TEXT"}, {"kind": "macro", "line": 567, "name": "P4TEXT"}, {"kind": "macro", "line": 583, "name": "P5TEXT"}, {"kind": "macro", "line": 591, "name": "P6TEXT"}, {"kind": "macro", "line": 596, "name": "T1TEXT"}, {"kind": "macro", "line": 611, "name": "T2TEXT"}, {"kind": "macro", "line": 623, "name": "T3TEXT"}, {"kind": "macro", "line": 634, "name": "T4TEXT"}, {"kind": "macro", "line": 647, "name": "T5TEXT"}, {"kind": "macro", "line": 655, "name": "T6TEXT"}, {"kind": "macro", "line": 674, "name": "CC_ZOMBIE"}, {"kind": "macro", "line": 675, "name": "CC_SHOTGUN"}, {"kind": "macro", "line": 676, "name": "CC_HEAVY"}, {"kind": "macro", "line": 677, "name": "CC_IMP"}, {"kind": "macro", "line": 678, "name": "CC_DEMON"}, {"kind": "macro", "line": 679, "name": "CC_LOST"}, {"kind": "macro", "line": 680, "name": "CC_CACO"}, {"kind": "macro", "line": 681, "name": "CC_HELL"}, {"kind": "macro", "line": 682, "name": "CC_BARON"}, {"kind": "macro", "line": 683, "name": "CC_ARACH"}, {"kind": "macro", "line": 684, "name": "CC_PAIN"}, {"kind": "macro", "line": 685, "name": "CC_REVEN"}, {"kind": "macro", "line": 686, "name": "CC_MANCU"}, {"kind": "macro", "line": 687, "name": "CC_ARCH"}, {"kind": "macro", "line": 688, "name": "CC_SPIDER"}, {"kind": "macro", "line": 689, "name": "CC_CYBER"}, {"kind": "macro", "line": 690, "name": "CC_HERO"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Event handling. Events are asynchronous inputs generally generated by the game user. Events can be discarded if no responder claims them include include \"d_event.h\" define MAXEVENTS 64", "id": "progs/doomgeneric/d_event.c", "kind": "module", "label": "d_event.c", "language": "c", "sha256": "e59c83a837704ef9", "symbol_count": 3, "symbols": [{"doc": "D_PostEvent Called by the I/O functions when input is detected", "kind": "function", "line": 35, "name": "D_PostEvent", "signature": "void D_PostEvent (event_t* ev)"}, {"doc": "Read an event from the queue.", "kind": "function", "line": 42, "name": "D_PopEvent", "signature": "event_t *D_PopEvent(void)"}, {"kind": "macro", "line": 24, "name": "MAXEVENTS"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: ifndef __D_EVENT__ define __D_EVENT__ include \"doomtype.h\" Event handling.", "id": "progs/doomgeneric/d_event.h", "kind": "module", "label": "d_event.h", "language": "h", "sha256": "bf8349da634de493", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__D_EVENT__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: We are referring to sprite numbers. include \"info.h\" include \"d_items.h\" PSPRITE ACTIONS for waepons. This struct controls the weapon animations. Each entry is: ammo/amunition type", "id": "progs/doomgeneric/d_items.c", "kind": "module", "label": "d_items.c", "language": "c", "sha256": "71175f526df33793", "symbol_count": 0, "symbols": []}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Items: key cards, artifacts, weapon, ammunition. ifndef __D_ITEMS__ define __D_ITEMS__ include \"doomdef.h\" Weapon info: sprite frames, ammunition use.", "id": "progs/doomgeneric/d_items.h", "kind": "module", "label": "d_items.h", "language": "h", "sha256": "dc26e4ff3c17194f", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__D_ITEMS__"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Search for and locate an IWAD file, and initialize according to the IWAD type. include include include include include \"config.h\" include \"deh_str.h\" include \"doomkeys.h\" include \"d_iwad.h\" include \"i_system.h\" include \"m_argv.h\" include \"m_config.h\"", "id": "progs/doomgeneric/d_iwad.c", "kind": "module", "label": "d_iwad.c", "language": "c", "sha256": "bd8d123b84420ec0", "symbol_count": 26, "symbols": [{"kind": "function", "line": 63, "name": "AddIWADDir", "signature": "static void AddIWADDir(char *dir)"}, {"kind": "function", "line": 191, "name": "GetRegistryString", "signature": "static char *GetRegistryString(registry_value_t *reg_val)"}, {"doc": "Check for the uninstall strings from the CD versions", "kind": "function", "line": 235, "name": "CheckUninstallStrings", "signature": "static void CheckUninstallStrings(void)"}, {"doc": "Check for Doom: Collector's Edition", "kind": "function", "line": 269, "name": "CheckCollectorsEdition", "signature": "static void CheckCollectorsEdition(void)"}, {"doc": "Check for Doom downloaded via Steam", "kind": "function", "line": 296, "name": "CheckSteamEdition", "signature": "static void CheckSteamEdition(void)"}, {"doc": "The BFG edition ships with a full set of GUS patches. If we find them, we can autoconfigure to use them.", "kind": "function", "line": 323, "name": "CheckSteamGUSPatches", "signature": "static void CheckSteamGUSPatches(void)"}, {"doc": "Default install directories for DOS Doom", "kind": "function", "line": 363, "name": "CheckDOSDefaults", "signature": "static void CheckDOSDefaults(void)"}, {"doc": "Returns true if the specified path is a path to a file of the specified name.", "kind": "function", "line": 390, "name": "DirIsFile", "signature": "static boolean DirIsFile(char *path, char *filename)"}, {"doc": "Check if the specified directory contains the specified IWAD file, returning the full path to the IWAD if found, or NULL if not found.", "kind": "function", "line": 407, "name": "CheckDirectoryHasIWAD", "signature": "static char *CheckDirectoryHasIWAD(char *dir, char *iwadname)"}, {"doc": "Search a directory to try to find an IWAD Returns the location of the IWAD if found, otherwise NULL.", "kind": "function", "line": 448, "name": "SearchDirectoryForIWAD", "signature": "static char *SearchDirectoryForIWAD(char *dir, int mask, GameMission_t *mission)"}, {"doc": "When given an IWAD with the '-iwad' parameter, attempt to identify it by its name.", "kind": "function", "line": 476, "name": "IdentifyIWADByName", "signature": "static GameMission_t IdentifyIWADByName(char *name, int mask)"}, {"doc": "if ORIGCODE Add directories from the list in the DOOMWADPATH environment variable.", "kind": "function", "line": 517, "name": "AddDoomWadPath", "signature": "static void AddDoomWadPath(void)"}, {"doc": "Build a list of IWAD files", "kind": "function", "line": 568, "name": "BuildIWADDirList", "signature": "static void BuildIWADDirList(void)"}, {"doc": "Searches WAD search paths for an WAD with a specific filename.", "kind": "function", "line": 629, "name": "D_FindWADByName", "signature": "char *D_FindWADByName(char *name)"}, {"doc": "D_TryWADByName Searches for a WAD by its filename, or passes through the filename if not found.", "kind": "function", "line": 680, "name": "D_TryFindWADByName", "signature": "char *D_TryFindWADByName(char *filename)"}, {"doc": "FindIWAD Checks availability of IWAD files by name, to determine whether registered/commercial features should be executed (notably loading PWADs).", "kind": "function", "line": 703, "name": "D_FindIWAD", "signature": "char *D_FindIWAD(int mask, GameMission_t *mission)"}, {"doc": "Find all IWADs in the IWAD search path matching the given mask.", "kind": "function", "line": 756, "name": "D_FindAllIWADs", "signature": "const iwad_t **D_FindAllIWADs(int mask)"}, {"doc": "Get the IWAD name used for savegames.", "kind": "function", "line": 795, "name": "D_SaveGameIWADName", "signature": "char *D_SaveGameIWADName(GameMission_t gamemission)"}, {"kind": "function", "line": 819, "name": "D_SuggestIWADName", "signature": "char *D_SuggestIWADName(GameMission_t mission, GameMode_t mode)"}, {"kind": "function", "line": 834, "name": "D_SuggestGameName", "signature": "char *D_SuggestGameName(GameMission_t mission, GameMode_t mode)"}, {"kind": "macro", "line": 57, "name": "MAX_IWAD_DIRS"}, {"kind": "macro", "line": 79, "name": "WIN32_LEAN_AND_MEAN"}, {"kind": "macro", "line": 89, "name": "UNINSTALLER_STRING"}, {"kind": "macro", "line": 102, "name": "SOFTWARE_KEY"}, {"kind": "macro", "line": 104, "name": "SOFTWARE_KEY"}, {"kind": "macro", "line": 188, "name": "STEAM_BFG_GUS_PATCHES"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Find IWAD and initialize according to IWAD type. ifndef __D_IWAD__ define __D_IWAD__ include \"d_mode.h\" define IWAD_MASK_DOOM ((1 << doom) \\", "id": "progs/doomgeneric/d_iwad.h", "kind": "module", "label": "d_iwad.h", "language": "h", "sha256": "80711f3d285bd69d", "symbol_count": 5, "symbols": [{"kind": "macro", "line": 20, "name": "__D_IWAD__"}, {"kind": "macro", "line": 23, "name": "IWAD_MASK_DOOM"}, {"kind": "macro", "line": 30, "name": "IWAD_MASK_HERETIC"}, {"kind": "macro", "line": 31, "name": "IWAD_MASK_HEXEN"}, {"kind": "macro", "line": 32, "name": "IWAD_MASK_STRIFE"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Main loop code. include include include \"doomfeatures.h\" include \"d_event.h\" include \"d_loop.h\" include \"d_ticcmd.h\" include \"i_system.h\" include \"i_timer.h\" include \"i_video.h\"", "id": "progs/doomgeneric/d_loop.c", "kind": "module", "label": "d_loop.c", "language": "c", "sha256": "a485f3ad92a42b3b", "symbol_count": 17, "symbols": [{"doc": "35 fps clock adjusted by offsetms milliseconds", "kind": "function", "line": 118, "name": "GetAdjustedTime", "signature": "static int GetAdjustedTime(void)"}, {"kind": "function", "line": 135, "name": "BuildNewTic", "signature": "static boolean BuildNewTic(void)"}, {"kind": "function", "line": 202, "name": "NetUpdate", "signature": "void NetUpdate (void)"}, {"kind": "function", "line": 251, "name": "D_Disconnected", "signature": "static void D_Disconnected(void)"}, {"doc": "Invoked by the network engine when a complete set of ticcmds is available.", "kind": "function", "line": 270, "name": "D_ReceiveTic", "signature": "void D_ReceiveTic(ticcmd_t *ticcmds, boolean *players_mask)"}, {"doc": "Start game loop Called after the screen is set but before the game starts running.", "kind": "function", "line": 304, "name": "D_StartGameLoop", "signature": "void D_StartGameLoop(void)"}, {"doc": "if ORIGCODE Block until the game start message is received from the server.", "kind": "function", "line": 314, "name": "BlockUntilStart", "signature": "static void BlockUntilStart(net_gamesettings_t *settings,\n netgame_sta..."}, {"doc": "endif", "kind": "function", "line": 339, "name": "D_StartNetGame", "signature": "void D_StartNetGame(net_gamesettings_t *settings,\n netgame_startup_callback_t ..."}, {"kind": "function", "line": 451, "name": "D_InitNetGame", "signature": "boolean D_InitNetGame(net_connect_data_t *connect_data)"}, {"doc": "D_QuitNetGame Called before quitting to leave a net game without hanging the other players", "kind": "function", "line": 560, "name": "D_QuitNetGame", "signature": "void D_QuitNetGame (void)"}, {"kind": "function", "line": 567, "name": "GetLowTic", "signature": "static int GetLowTic(void)"}, {"kind": "function", "line": 590, "name": "OldNetSync", "signature": "static void OldNetSync(void)"}, {"doc": "Returns true if there are players in the game:", "kind": "function", "line": 641, "name": "PlayersInGame", "signature": "static boolean PlayersInGame(void)"}, {"doc": "When using ticdup, certain values must be cleared out when running the duplicate ticcmds.", "kind": "function", "line": 671, "name": "TicdupSquash", "signature": "static void TicdupSquash(ticcmd_set_t *set)"}, {"doc": "When running in single player mode, clear all the ingame[] array except the local player.", "kind": "function", "line": 688, "name": "SinglePlayerClear", "signature": "static void SinglePlayerClear(ticcmd_set_t *set)"}, {"doc": "TryRunTics", "kind": "function", "line": 705, "name": "TryRunTics", "signature": "void TryRunTics (void)"}, {"kind": "function", "line": 821, "name": "D_RegisterLoopCallbacks", "signature": "void D_RegisterLoopCallbacks(loop_interface_t *i)"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Main loop stuff. ifndef __D_LOOP__ define __D_LOOP__ include \"net_defs.h\" Callback function invoked while waiting for the netgame to start. The callback is invoked when new players are ready. The callback should return true, or return false to abort startup.", "id": "progs/doomgeneric/d_loop.h", "kind": "module", "label": "d_loop.h", "language": "h", "sha256": "a8355729ce130c19", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 20, "name": "__D_LOOP__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: DOOM main program (D_DoomMain) and game loop (D_DoomLoop), plus functions to determine game mode (shareware, registered), parse command line parameters, configure game parameters (turbo), and call the startup functions. include include include include include \"config.h\" include \"deh_main.h\" include \"doomdef.h\"", "id": "progs/doomgeneric/d_main.c", "kind": "module", "label": "d_main.c", "language": "c", "sha256": "02929eb503986c76", "symbol_count": 21, "symbols": [{"doc": "D_ProcessEvents Send all the events of the given timestamp down the responder chain", "kind": "function", "line": 139, "name": "D_ProcessEvents", "signature": "void D_ProcessEvents (void)"}, {"kind": "function", "line": 168, "name": "D_Display", "signature": "void D_Display (void)"}, {"doc": "Add configuration file variable bindings.", "kind": "function", "line": 334, "name": "D_BindVariables", "signature": "void D_BindVariables(void)"}, {"doc": "D_GrabMouseCallback Called to determine whether to grab the mouse pointer", "kind": "function", "line": 387, "name": "D_GrabMouseCallback", "signature": "boolean D_GrabMouseCallback(void)"}, {"doc": "D_DoomLoop", "kind": "function", "line": 408, "name": "D_DoomLoop", "signature": "void D_DoomLoop (void)"}, {"doc": "D_PageTicker Handles timing for warped projection", "kind": "function", "line": 490, "name": "D_PageTicker", "signature": "void D_PageTicker (void)"}, {"doc": "D_PageDrawer", "kind": "function", "line": 501, "name": "D_PageDrawer", "signature": "void D_PageDrawer (void)"}, {"doc": "D_AdvanceDemo Called after each demo or intro demosequence finishes", "kind": "function", "line": 511, "name": "D_AdvanceDemo", "signature": "void D_AdvanceDemo (void)"}, {"doc": "This cycles through the demo sequences. FIXME - version dependend demo numbers?", "kind": "function", "line": 521, "name": "D_DoAdvanceDemo", "signature": "void D_DoAdvanceDemo (void)"}, {"doc": "D_StartTitle", "kind": "function", "line": 609, "name": "D_StartTitle", "signature": "void D_StartTitle (void)"}, {"doc": "Get game name: if the startup banner has been replaced, use that. Otherwise, use the name given", "kind": "function", "line": 657, "name": "GetGameName", "signature": "static char *GetGameName(char *gamename)"}, {"kind": "function", "line": 700, "name": "SetMissionForPackName", "signature": "static void SetMissionForPackName(char *pack_name)"}, {"doc": "Find out what version of Doom is playing.", "kind": "function", "line": 736, "name": "D_IdentifyVersion", "signature": "void D_IdentifyVersion(void)"}, {"doc": "Set the gamedescription string", "kind": "function", "line": 819, "name": "D_SetGameDescription", "signature": "void D_SetGameDescription(void)"}, {"kind": "function", "line": 882, "name": "D_AddFile", "signature": "static boolean D_AddFile(char *filename)"}, {"doc": "Prints a message only if it has been modified by dehacked.", "kind": "function", "line": 917, "name": "PrintDehackedBanners", "signature": "void PrintDehackedBanners(void)"}, {"doc": "Initialize the game version", "kind": "function", "line": 962, "name": "InitGameVersion", "signature": "static void InitGameVersion(void)"}, {"kind": "function", "line": 1064, "name": "PrintGameVersion", "signature": "void PrintGameVersion(void)"}, {"doc": "Function called at exit to display the ENDOOM screen", "kind": "function", "line": 1081, "name": "D_Endoom", "signature": "static void D_Endoom(void)"}, {"doc": "if ORIGCODE Load dehacked patches needed for certain IWADs.", "kind": "function", "line": 1105, "name": "LoadIwadDeh", "signature": "static void LoadIwadDeh(void)"}, {"doc": "D_DoomMain", "kind": "function", "line": 1178, "name": "D_DoomMain", "signature": "void D_DoomMain (void)"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: System specific interface stuff. ifndef __D_MAIN__ define __D_MAIN__ include \"doomdef.h\" Read events from all input devices", "id": "progs/doomgeneric/d_main.h", "kind": "module", "label": "d_main.h", "language": "h", "sha256": "bbc489e1c3947bc9", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__D_MAIN__"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Functions and definitions relating to the game type and operational mode. include \"doomtype.h\" include \"d_mode.h\" Valid game mode/mission combinations, with the number of episodes/maps for each.", "id": "progs/doomgeneric/d_mode.c", "kind": "module", "label": "d_mode.c", "language": "c", "sha256": "65311c8ff5a09055", "symbol_count": 6, "symbols": [{"doc": "Check that a gamemode+gamemission received over the network is valid.", "kind": "function", "line": 49, "name": "D_ValidGameMode", "signature": "boolean D_ValidGameMode(GameMission_t mission, GameMode_t mode)"}, {"kind": "function", "line": 64, "name": "D_ValidEpisodeMap", "signature": "boolean D_ValidEpisodeMap(GameMission_t mission, GameMode_t mode,\n int e..."}, {"doc": "Get the number of valid episodes for the specified mission/mode.", "kind": "function", "line": 102, "name": "D_GetNumEpisodes", "signature": "int D_GetNumEpisodes(GameMission_t mission, GameMode_t mode)"}, {"kind": "function", "line": 134, "name": "D_ValidGameVersion", "signature": "boolean D_ValidGameVersion(GameMission_t mission, GameVersion_t version)"}, {"doc": "Does this mission type use ExMy form, rather than MAPxy form?", "kind": "function", "line": 160, "name": "D_IsEpisodeMap", "signature": "boolean D_IsEpisodeMap(GameMission_t mission)"}, {"kind": "function", "line": 181, "name": "D_GameMissionString", "signature": "char *D_GameMissionString(GameMission_t mission)"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Functions and definitions relating to the game type and operational mode. ifndef __D_MODE__ define __D_MODE__ include \"doomtype.h\" The \"mission\" controls what game we are playing.", "id": "progs/doomgeneric/d_mode.h", "kind": "module", "label": "d_mode.h", "language": "h", "sha256": "f16f2ed640e3d4b7", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__D_MODE__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: DOOM Network game communication and protocol, all OS independend parts. include include \"doomfeatures.h\" include \"d_main.h\" include \"m_argv.h\" include \"m_menu.h\" include \"m_misc.h\" include \"i_system.h\" include \"i_timer.h\" include \"i_video.h\"", "id": "progs/doomgeneric/d_net.c", "kind": "module", "label": "d_net.c", "language": "c", "sha256": "2cbf920b5971ccdb", "symbol_count": 7, "symbols": [{"doc": "Called when a player leaves the game", "kind": "function", "line": 44, "name": "PlayerQuitGame", "signature": "static void PlayerQuitGame(player_t *player)"}, {"kind": "function", "line": 70, "name": "RunTic", "signature": "static void RunTic(ticcmd_t *cmds, boolean *ingame)"}, {"doc": "Load game settings from the specified structure and set global variables.", "kind": "function", "line": 107, "name": "LoadGameSettings", "signature": "static void LoadGameSettings(net_gamesettings_t *settings)"}, {"doc": "Save the game settings from global variables to the specified game settings structure.", "kind": "function", "line": 138, "name": "SaveGameSettings", "signature": "static void SaveGameSettings(net_gamesettings_t *settings)"}, {"kind": "function", "line": 158, "name": "InitConnectData", "signature": "static void InitConnectData(net_connect_data_t *connect_data)"}, {"kind": "function", "line": 214, "name": "D_ConnectNetGame", "signature": "void D_ConnectNetGame(void)"}, {"doc": "D_CheckNetGame Works out player numbers among the net participants", "kind": "function", "line": 240, "name": "D_CheckNetGame", "signature": "void D_CheckNetGame (void)"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: ifndef __D_PLAYER__ define __D_PLAYER__ The player data structure depends on a number of other structs: items (internal inventory), animation states (closely tied to the sprites used to represent them, unfortunately). include \"d_items.h\" include \"p_pspr.h\"", "id": "progs/doomgeneric/d_player.h", "kind": "module", "label": "d_player.h", "language": "h", "sha256": "8e832306188a46a6", "symbol_count": 2, "symbols": [{"doc": "Extended player object info: player_t", "kind": "struct", "line": 78, "name": "player_s"}, {"kind": "macro", "line": 21, "name": "__D_PLAYER__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Typedefs related to to textures etc., isolated here to make it easier separating modules. ifndef __D_TEXTUR__ define __D_TEXTUR__ include \"doomtype.h\" Flats?", "id": "progs/doomgeneric/d_textur.h", "kind": "module", "label": "d_textur.h", "language": "h", "sha256": "ed0547a4cb92b44a", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 22, "name": "__D_TEXTUR__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: MapObj data. Map Objects or mobjs are actors, entities, thinker, take-your-pick... anything that moves, acts, or suffers state changes of more or less violent nature. ifndef __D_THINK__ define __D_THINK__ Experimental stuff.", "id": "progs/doomgeneric/d_think.h", "kind": "module", "label": "d_think.h", "language": "h", "sha256": "5bf356609994a1e2", "symbol_count": 2, "symbols": [{"doc": "Doubly linked list of actors.", "kind": "struct", "line": 58, "name": "thinker_s"}, {"kind": "macro", "line": 23, "name": "__D_THINK__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 1993-2008 Raven Software Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: System specific interface stuff. ifndef __D_TICCMD__ define __D_TICCMD__ include \"doomtype.h\" The data sampled per tick (single player) and transmitted to other peers (multiplayer). Mainly movements/button commands per game tick, plus a checksum for internal state consistency.", "id": "progs/doomgeneric/d_ticcmd.h", "kind": "module", "label": "d_ticcmd.h", "language": "h", "sha256": "2d6a30fef103c872", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 22, "name": "__D_TICCMD__"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. Dehacked entrypoint and common code ifndef DEH_MAIN_H define DEH_MAIN_H include \"doomtype.h\" include \"doomfeatures.h\" include \"deh_str.h\" include \"sha1.h\" These are the limits that dehacked uses (from dheinit.h in the dehacked source). If these limits are exceeded, it does not generate an error, but a warning is displayed. define DEH_VANILLA_NUMSTATES 966", "id": "progs/doomgeneric/deh_main.h", "kind": "module", "label": "deh_main.h", "language": "h", "sha256": "dc82abd616bafe25", "symbol_count": 3, "symbols": [{"kind": "macro", "line": 19, "name": "DEH_MAIN_H"}, {"kind": "macro", "line": 29, "name": "DEH_VANILLA_NUMSTATES"}, {"kind": "macro", "line": 31, "name": "DEH_VANILLA_NUMSFX"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. Parses \"Misc\" sections in dehacked files ifndef DEH_MISC_H define DEH_MISC_H include \"doomfeatures.h\" define DEH_DEFAULT_INITIAL_HEALTH 100 define DEH_DEFAULT_INITIAL_BULLETS 50 define DEH_DEFAULT_MAX_HEALTH 200 define DEH_DEFAULT_MAX_ARMOR 200 define DEH_DEFAULT_GREEN_ARMOR_CLASS 1 define DEH_DEFAULT_BLUE_ARMOR_CLASS 2 define DEH_DEFAULT_MAX_SOULSPHERE 200 define DEH_DEFAULT_SOULSPHERE_HEALTH 100", "id": "progs/doomgeneric/deh_misc.h", "kind": "module", "label": "deh_misc.h", "language": "h", "sha256": "55947e8f284b1267", "symbol_count": 33, "symbols": [{"kind": "macro", "line": 19, "name": "DEH_MISC_H"}, {"kind": "macro", "line": 22, "name": "DEH_DEFAULT_INITIAL_HEALTH"}, {"kind": "macro", "line": 24, "name": "DEH_DEFAULT_INITIAL_BULLETS"}, {"kind": "macro", "line": 25, "name": "DEH_DEFAULT_MAX_HEALTH"}, {"kind": "macro", "line": 26, "name": "DEH_DEFAULT_MAX_ARMOR"}, {"kind": "macro", "line": 27, "name": "DEH_DEFAULT_GREEN_ARMOR_CLASS"}, {"kind": "macro", "line": 28, "name": "DEH_DEFAULT_BLUE_ARMOR_CLASS"}, {"kind": "macro", "line": 29, "name": "DEH_DEFAULT_MAX_SOULSPHERE"}, {"kind": "macro", "line": 30, "name": "DEH_DEFAULT_SOULSPHERE_HEALTH"}, {"kind": "macro", "line": 31, "name": "DEH_DEFAULT_MEGASPHERE_HEALTH"}, {"kind": "macro", "line": 32, "name": "DEH_DEFAULT_GOD_MODE_HEALTH"}, {"kind": "macro", "line": 33, "name": "DEH_DEFAULT_IDFA_ARMOR"}, {"kind": "macro", "line": 34, "name": "DEH_DEFAULT_IDFA_ARMOR_CLASS"}, {"kind": "macro", "line": 35, "name": "DEH_DEFAULT_IDKFA_ARMOR"}, {"kind": "macro", "line": 36, "name": "DEH_DEFAULT_IDKFA_ARMOR_CLASS"}, {"kind": "macro", "line": 37, "name": "DEH_DEFAULT_BFG_CELLS_PER_SHOT"}, {"kind": "macro", "line": 38, "name": "DEH_DEFAULT_SPECIES_INFIGHTING"}, {"kind": "macro", "line": 62, "name": "deh_initial_health"}, {"kind": "macro", "line": 64, "name": "deh_initial_bullets"}, {"kind": "macro", "line": 65, "name": "deh_max_health"}, {"kind": "macro", "line": 66, "name": "deh_max_armor"}, {"kind": "macro", "line": 67, "name": "deh_green_armor_class"}, {"kind": "macro", "line": 68, "name": "deh_blue_armor_class"}, {"kind": "macro", "line": 69, "name": "deh_max_soulsphere"}, {"kind": "macro", "line": 70, "name": "deh_soulsphere_health"}, {"kind": "macro", "line": 71, "name": "deh_megasphere_health"}, {"kind": "macro", "line": 72, "name": "deh_god_mode_health"}, {"kind": "macro", "line": 73, "name": "deh_idfa_armor"}, {"kind": "macro", "line": 74, "name": "deh_idfa_armor_class"}, {"kind": "macro", "line": 75, "name": "deh_idkfa_armor"}, {"kind": "macro", "line": 76, "name": "deh_idkfa_armor_class"}, {"kind": "macro", "line": 77, "name": "deh_bfg_cells_per_shot"}, {"kind": "macro", "line": 78, "name": "deh_species_infighting"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. Dehacked string replacements ifndef DEH_STR_H define DEH_STR_H include include \"doomfeatures.h\" Used to do dehacked text substitutions throughout the program ifdef FEATURE_DEHACKED", "id": "progs/doomgeneric/deh_str.h", "kind": "module", "label": "deh_str.h", "language": "h", "sha256": "374320e2d4ac7de8", "symbol_count": 6, "symbols": [{"kind": "macro", "line": 19, "name": "DEH_STR_H"}, {"kind": "macro", "line": 37, "name": "DEH_String"}, {"kind": "macro", "line": 39, "name": "DEH_printf"}, {"kind": "macro", "line": 40, "name": "DEH_fprintf"}, {"kind": "macro", "line": 41, "name": "DEH_snprintf"}, {"kind": "macro", "line": 42, "name": "DEH_AddStringReplacement"}]}, {"id": "progs/doomgeneric/doom.h", "kind": "module", "label": "doom.h", "language": "h", "sha256": "acf2755de195d6e6", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 10, "name": "SRC_CHOCDOOM_DOOM_H_"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: all external data is defined here most of the data is loaded into different structures at run time some internal structures shared by many modules are here ifndef __DOOMDATA__ define __DOOMDATA__ The most basic types we use, portability. include \"doomtype.h\" Some global defines, that configure the game. include \"doomdef.h\"", "id": "progs/doomgeneric/doomdata.h", "kind": "module", "label": "doomdata.h", "language": "h", "sha256": "c296f3cbd788e87c", "symbol_count": 11, "symbols": [{"kind": "macro", "line": 22, "name": "__DOOMDATA__"}, {"kind": "macro", "line": 98, "name": "ML_BLOCKING"}, {"kind": "macro", "line": 101, "name": "ML_BLOCKMONSTERS"}, {"kind": "macro", "line": 105, "name": "ML_TWOSIDED"}, {"kind": "macro", "line": 117, "name": "ML_DONTPEGTOP"}, {"kind": "macro", "line": 120, "name": "ML_DONTPEGBOTTOM"}, {"kind": "macro", "line": 123, "name": "ML_SECRET"}, {"kind": "macro", "line": 126, "name": "ML_SOUNDBLOCK"}, {"kind": "macro", "line": 129, "name": "ML_DONTDRAW"}, {"kind": "macro", "line": 132, "name": "ML_MAPPED"}, {"kind": "macro", "line": 175, "name": "NF_SUBSECTOR"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: DoomDef - basic defines for DOOM, e.g. Version, game mode and skill level, and display parameters. include \"doomdef.h\" Location for any defines turned variables. None.", "id": "progs/doomgeneric/doomdef.c", "kind": "module", "label": "doomdef.c", "language": "c", "sha256": "2aebd7ef7ea9fa2d", "symbol_count": 0, "symbols": []}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Internally used data structures for virtually everything, lots of other stuff. ifndef __DOOMDEF__ define __DOOMDEF__ include include include \"doomtype.h\" include \"i_timer.h\" include \"d_mode.h\"", "id": "progs/doomgeneric/doomdef.h", "kind": "module", "label": "doomdef.h", "language": "h", "sha256": "bffb986830bcf569", "symbol_count": 9, "symbols": [{"kind": "macro", "line": 21, "name": "__DOOMDEF__"}, {"kind": "macro", "line": 34, "name": "DOOM_VERSION"}, {"kind": "macro", "line": 37, "name": "DOOM_191_VERSION"}, {"kind": "macro", "line": 42, "name": "RANGECHECK"}, {"kind": "macro", "line": 45, "name": "MAXPLAYERS"}, {"kind": "macro", "line": 77, "name": "MTF_EASY"}, {"kind": "macro", "line": 78, "name": "MTF_NORMAL"}, {"kind": "macro", "line": 79, "name": "MTF_HARD"}, {"kind": "macro", "line": 82, "name": "MTF_AMBUSH"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: List of features which can be enabled/disabled to slim down the program. ifndef DOOM_FEATURES_H define DOOM_FEATURES_H Enables wad merging (the '-merge' command line parameter) undef FEATURE_WAD_MERGE Enables dehacked support ('-deh') undef FEATURE_DEHACKED Enables multiplayer support (network games)", "id": "progs/doomgeneric/doomfeatures.h", "kind": "module", "label": "doomfeatures.h", "language": "h", "sha256": "c66de1643cca80dd", "symbol_count": 2, "symbols": [{"kind": "macro", "line": 20, "name": "DOOM_FEATURES_H"}, {"kind": "macro", "line": 35, "name": "FEATURE_SOUND"}]}, {"doc": "include \"doomgeneric.h\"", "id": "progs/doomgeneric/doomgeneric.c", "kind": "module", "label": "doomgeneric.c", "language": "c", "sha256": "4cf955277bc9de8d", "symbol_count": 1, "symbols": [{"kind": "function", "line": 4, "name": "dg_Create", "signature": "void dg_Create()"}]}, {"doc": "ifndef DOOM_GENERIC define DOOM_GENERIC include include define DOOMGENERIC_RESX 320 define DOOMGENERIC_RESY 200", "id": "progs/doomgeneric/doomgeneric.h", "kind": "module", "label": "doomgeneric.h", "language": "h", "sha256": "a0894b018bcf9735", "symbol_count": 3, "symbols": [{"kind": "macro", "line": 2, "name": "DOOM_GENERIC"}, {"kind": "macro", "line": 6, "name": "DOOMGENERIC_RESX"}, {"kind": "macro", "line": 8, "name": "DOOMGENERIC_RESY"}]}, {"doc": "doomgeneric_minios.c - MiniOS platform layer for doomgeneric.", "id": "progs/doomgeneric/doomgeneric_minios.c", "kind": "module", "label": "doomgeneric_minios.c", "language": "c", "sha256": "40d6cd8c747e436d", "symbol_count": 26, "symbols": [{"doc": "long ret; __asm__ volatile(\"syscall\" : \"=a\"(ret) : \"a\"(208), \"D\"((long)on) : \"rcx\",\"r11\",\"memory\"); return ret; } /* ---------- VGA Mode 13h framebuffer ---------- #define FB_ADDR ((volatile uint8_t *)0x1F00000UL) #define FB_WIDTH 320 #define FB_HEIGHT 200 /* ---------- Palette management ---------- /* Extern from i_video.c - the gamma-corrected palette colors", "kind": "struct", "line": 51, "name": "color"}, {"doc": "doomgeneric_minios.c - MiniOS platform layer for doomgeneric. VGA Mode 13h (320x200, 256 colors) set by stage1.S. Framebuffer at virtual 0x1F00000 (physical 0xA0000). Syscalls: 204=time(ms), 205=kbd(scancode), 206=palette(768 bytes), 207=kbd_raw_mode(0/1). #include \"doomgeneric.h\" #include \"doomkeys.h\" #include #include /* ---------- MiniOS syscalls ----------", "kind": "function", "line": 15, "name": "sys_time_ms", "signature": "static long sys_time_ms(void)"}, {"kind": "function", "line": 21, "name": "sys_kbd", "signature": "static long sys_kbd(void)"}, {"kind": "function", "line": 26, "name": "sys_palette", "signature": "static long sys_palette(const unsigned char *pal)"}, {"kind": "function", "line": 31, "name": "sys_kbd_raw", "signature": "static long sys_kbd_raw(int on)"}, {"kind": "function", "line": 36, "name": "sys_vga_mode", "signature": "static long sys_vga_mode(int on)"}, {"kind": "function", "line": 63, "name": "ht_hash", "signature": "static unsigned ht_hash(uint8_t r, uint8_t g, uint8_t b)"}, {"kind": "function", "line": 67, "name": "ht_clear", "signature": "static void ht_clear(void)"}, {"kind": "function", "line": 72, "name": "ht_insert", "signature": "static void ht_insert(uint8_t r, uint8_t g, uint8_t b, uint8_t idx)"}, {"kind": "function", "line": 79, "name": "ht_lookup", "signature": "static uint8_t ht_lookup(uint8_t r, uint8_t g, uint8_t b)"}, {"kind": "function", "line": 99, "name": "rebuild_palette_ht", "signature": "static void rebuild_palette_ht(void)"}, {"kind": "function", "line": 106, "name": "load_vga_palette", "signature": "static void load_vga_palette(void)"}, {"doc": "} static void load_vga_palette(void) { uint8_t dac[768]; int i; for (i = 0; i < 256; i++) { dac[i*3+0] = colors[i].r; dac[i*3+1] = colors[i].g; dac[i*3+2] = colors[i].b; } sys_palette(dac); } /* ---------- PS/2 Set 1 -> DOOM key ----------", "kind": "function", "line": 119, "name": "scancode_to_doom", "signature": "static unsigned char scancode_to_doom(unsigned char raw)"}, {"kind": "function", "line": 178, "name": "kbd_enqueue", "signature": "static void kbd_enqueue(unsigned char doom_key, int pressed)"}, {"kind": "function", "line": 185, "name": "kbd_poll", "signature": "static void kbd_poll(void)"}, {"kind": "function", "line": 228, "name": "DG_Init", "signature": "void DG_Init(void)"}, {"kind": "function", "line": 233, "name": "DG_DrawFrame", "signature": "void DG_DrawFrame(void)"}, {"kind": "function", "line": 250, "name": "DG_SleepMs", "signature": "void DG_SleepMs(uint32_t ms)"}, {"kind": "function", "line": 256, "name": "DG_GetTicksMs", "signature": "uint32_t DG_GetTicksMs(void)"}, {"kind": "function", "line": 260, "name": "DG_GetKey", "signature": "int DG_GetKey(int *pressed, unsigned char *key)"}, {"kind": "function", "line": 271, "name": "DG_SetWindowTitle", "signature": "void DG_SetWindowTitle(const char *title)"}, {"kind": "macro", "line": 43, "name": "FB_ADDR"}, {"kind": "macro", "line": 45, "name": "FB_WIDTH"}, {"kind": "macro", "line": 46, "name": "FB_HEIGHT"}, {"kind": "macro", "line": 60, "name": "HT_SIZE"}, {"kind": "macro", "line": 174, "name": "KBD_QUEUE_SIZE"}]}, {"doc": "doomgeneric for soso os include \"doomkeys.h\" include \"m_argv.h\" include \"doomgeneric.h\" include include include include ", "id": "progs/doomgeneric/doomgeneric_sdl.c", "kind": "module", "label": "doomgeneric_sdl.c", "language": "c", "sha256": "39c8c2ae3ce26a02", "symbol_count": 10, "symbols": [{"kind": "function", "line": 22, "name": "convertToDoomKey", "signature": "static unsigned char convertToDoomKey(unsigned int key)"}, {"kind": "function", "line": 62, "name": "addKeyToQueue", "signature": "static void addKeyToQueue(int pressed, unsigned int keyCode)"}, {"kind": "function", "line": 72, "name": "handleKeyInput", "signature": "static void handleKeyInput()"}, {"kind": "function", "line": 91, "name": "DG_Init", "signature": "void DG_Init()"}, {"kind": "function", "line": 111, "name": "DG_DrawFrame", "signature": "void DG_DrawFrame()"}, {"kind": "function", "line": 122, "name": "DG_SleepMs", "signature": "void DG_SleepMs(uint32_t ms)"}, {"kind": "function", "line": 127, "name": "DG_GetTicksMs", "signature": "uint32_t DG_GetTicksMs()"}, {"kind": "function", "line": 132, "name": "DG_GetKey", "signature": "int DG_GetKey(int* pressed, unsigned char* doomKey)"}, {"kind": "function", "line": 151, "name": "DG_SetWindowTitle", "signature": "void DG_SetWindowTitle(const char * title)"}, {"kind": "macro", "line": 16, "name": "KEYQUEUE_SIZE"}]}, {"doc": "doomgeneric for soso os include \"doomkeys.h\" include \"m_argv.h\" include \"doomgeneric.h\" include include include include include include include include ", "id": "progs/doomgeneric/doomgeneric_soso.c", "kind": "module", "label": "doomgeneric_soso.c", "language": "c", "sha256": "5116e47ef01fc5d8", "symbol_count": 12, "symbols": [{"kind": "function", "line": 42, "name": "convertToDoomKey", "signature": "static unsigned char convertToDoomKey(unsigned char scancode)"}, {"kind": "function", "line": 91, "name": "addKeyToQueue", "signature": "static void addKeyToQueue(int pressed, unsigned char keyCode)"}, {"kind": "function", "line": 107, "name": "disableRawMode", "signature": "void disableRawMode()"}, {"kind": "function", "line": 113, "name": "enableRawMode", "signature": "void enableRawMode()"}, {"kind": "function", "line": 123, "name": "DG_Init", "signature": "void DG_Init()"}, {"kind": "function", "line": 185, "name": "handleKeyInput", "signature": "static void handleKeyInput()"}, {"kind": "function", "line": 213, "name": "DG_DrawFrame", "signature": "void DG_DrawFrame()"}, {"kind": "function", "line": 226, "name": "DG_SleepMs", "signature": "void DG_SleepMs(uint32_t ms)"}, {"kind": "function", "line": 231, "name": "DG_GetTicksMs", "signature": "uint32_t DG_GetTicksMs()"}, {"kind": "function", "line": 236, "name": "DG_GetKey", "signature": "int DG_GetKey(int* pressed, unsigned char* doomKey)"}, {"kind": "function", "line": 257, "name": "DG_SetWindowTitle", "signature": "void DG_SetWindowTitle(const char * title)"}, {"kind": "macro", "line": 23, "name": "KEYQUEUE_SIZE"}]}, {"doc": "doomgeneric for soso os (nano-x version) TODO: get keys from X, not using direct keyboard access! include \"doomkeys.h\" include \"m_argv.h\" include \"doomgeneric.h\" include include include include include include include include ", "id": "progs/doomgeneric/doomgeneric_sosox.c", "kind": "module", "label": "doomgeneric_sosox.c", "language": "c", "sha256": "85bafa071feb30c3", "symbol_count": 12, "symbols": [{"kind": "function", "line": 37, "name": "convert_to_doom_key", "signature": "static unsigned char convert_to_doom_key(unsigned char scancode)"}, {"kind": "function", "line": 87, "name": "add_key_to_queue", "signature": "static void add_key_to_queue(int pressed, unsigned char key_code)"}, {"kind": "function", "line": 101, "name": "disable_raw_mode", "signature": "void disable_raw_mode()"}, {"kind": "function", "line": 106, "name": "enable_raw_mode", "signature": "void enable_raw_mode()"}, {"kind": "function", "line": 116, "name": "DG_Init", "signature": "void DG_Init()"}, {"kind": "function", "line": 158, "name": "handle_key_input", "signature": "static void handle_key_input()"}, {"kind": "function", "line": 186, "name": "DG_DrawFrame", "signature": "void DG_DrawFrame()"}, {"kind": "function", "line": 224, "name": "DG_SleepMs", "signature": "void DG_SleepMs(uint32_t ms)"}, {"kind": "function", "line": 229, "name": "DG_GetTicksMs", "signature": "uint32_t DG_GetTicksMs()"}, {"kind": "function", "line": 234, "name": "DG_GetKey", "signature": "int DG_GetKey(int* pressed, unsigned char* doomKey)"}, {"kind": "function", "line": 255, "name": "DG_SetWindowTitle", "signature": "void DG_SetWindowTitle(const char * title)"}, {"kind": "macro", "line": 23, "name": "KEYQUEUE_SIZE"}]}, {"doc": "include \"doomkeys.h\" include \"doomgeneric.h\" include include ", "id": "progs/doomgeneric/doomgeneric_win.c", "kind": "module", "label": "doomgeneric_win.c", "language": "c", "sha256": "8746e0ae771aaa7e", "symbol_count": 10, "symbols": [{"kind": "function", "line": 19, "name": "convertToDoomKey", "signature": "static unsigned char convertToDoomKey(unsigned char key)"}, {"kind": "function", "line": 58, "name": "addKeyToQueue", "signature": "static void addKeyToQueue(int pressed, unsigned char keyCode)"}, {"kind": "function", "line": 69, "name": "wndProc", "signature": "static LRESULT CALLBACK wndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)"}, {"kind": "function", "line": 94, "name": "DG_Init", "signature": "void DG_Init()"}, {"kind": "function", "line": 145, "name": "DG_DrawFrame", "signature": "void DG_DrawFrame()"}, {"kind": "function", "line": 161, "name": "DG_SleepMs", "signature": "void DG_SleepMs(uint32_t ms)"}, {"kind": "function", "line": 166, "name": "DG_GetTicksMs", "signature": "uint32_t DG_GetTicksMs()"}, {"kind": "function", "line": 171, "name": "DG_GetKey", "signature": "int DG_GetKey(int* pressed, unsigned char* doomKey)"}, {"kind": "function", "line": 192, "name": "DG_SetWindowTitle", "signature": "void DG_SetWindowTitle(const char * title)"}, {"kind": "macro", "line": 12, "name": "KEYQUEUE_SIZE"}]}, {"doc": "include \"doomkeys.h\" include \"doomgeneric.h\" include include include include include include include include ", "id": "progs/doomgeneric/doomgeneric_xlib.c", "kind": "module", "label": "doomgeneric_xlib.c", "language": "c", "sha256": "16c80c86875861df", "symbol_count": 9, "symbols": [{"kind": "function", "line": 26, "name": "convertToDoomKey", "signature": "static unsigned char convertToDoomKey(unsigned int key)"}, {"kind": "function", "line": 67, "name": "addKeyToQueue", "signature": "static void addKeyToQueue(int pressed, unsigned int keyCode)"}, {"kind": "function", "line": 78, "name": "DG_Init", "signature": "void DG_Init()"}, {"kind": "function", "line": 125, "name": "DG_DrawFrame", "signature": "void DG_DrawFrame()"}, {"kind": "function", "line": 171, "name": "DG_SleepMs", "signature": "void DG_SleepMs(uint32_t ms)"}, {"kind": "function", "line": 176, "name": "DG_GetTicksMs", "signature": "uint32_t DG_GetTicksMs()"}, {"kind": "function", "line": 186, "name": "DG_GetKey", "signature": "int DG_GetKey(int* pressed, unsigned char* doomKey)"}, {"kind": "function", "line": 207, "name": "DG_SetWindowTitle", "signature": "void DG_SetWindowTitle(const char * title)"}, {"kind": "macro", "line": 20, "name": "KEYQUEUE_SIZE"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Key definitions ifndef __DOOMKEYS__ define __DOOMKEYS__ DOOM keyboard definition. This is the stuff configured by Setup.Exe. Most key data are simple ascii (uppercased). define KEY_RIGHTARROW\t0xae define KEY_LEFTARROW\t0xac define KEY_UPARROW\t\t0xad define KEY_DOWNARROW\t0xaf", "id": "progs/doomgeneric/doomkeys.h", "kind": "module", "label": "doomkeys.h", "language": "h", "sha256": "de35009e7b9f93d6", "symbol_count": 59, "symbols": [{"kind": "macro", "line": 20, "name": "__DOOMKEYS__"}, {"kind": "macro", "line": 27, "name": "KEY_RIGHTARROW"}, {"kind": "macro", "line": 28, "name": "KEY_LEFTARROW"}, {"kind": "macro", "line": 29, "name": "KEY_UPARROW"}, {"kind": "macro", "line": 30, "name": "KEY_DOWNARROW"}, {"kind": "macro", "line": 31, "name": "KEY_STRAFE_L"}, {"kind": "macro", "line": 32, "name": "KEY_STRAFE_R"}, {"kind": "macro", "line": 33, "name": "KEY_USE"}, {"kind": "macro", "line": 34, "name": "KEY_FIRE"}, {"kind": "macro", "line": 35, "name": "KEY_ESCAPE"}, {"kind": "macro", "line": 36, "name": "KEY_ENTER"}, {"kind": "macro", "line": 37, "name": "KEY_TAB"}, {"kind": "macro", "line": 38, "name": "KEY_F1"}, {"kind": "macro", "line": 39, "name": "KEY_F2"}, {"kind": "macro", "line": 40, "name": "KEY_F3"}, {"kind": "macro", "line": 41, "name": "KEY_F4"}, {"kind": "macro", "line": 42, "name": "KEY_F5"}, {"kind": "macro", "line": 43, "name": "KEY_F6"}, {"kind": "macro", "line": 44, "name": "KEY_F7"}, {"kind": "macro", "line": 45, "name": "KEY_F8"}, {"kind": "macro", "line": 46, "name": "KEY_F9"}, {"kind": "macro", "line": 47, "name": "KEY_F10"}, {"kind": "macro", "line": 48, "name": "KEY_F11"}, {"kind": "macro", "line": 49, "name": "KEY_F12"}, {"kind": "macro", "line": 50, "name": "KEY_BACKSPACE"}, {"kind": "macro", "line": 52, "name": "KEY_PAUSE"}, {"kind": "macro", "line": 53, "name": "KEY_EQUALS"}, {"kind": "macro", "line": 55, "name": "KEY_MINUS"}, {"kind": "macro", "line": 56, "name": "KEY_RSHIFT"}, {"kind": "macro", "line": 58, "name": "KEY_RCTRL"}, {"kind": "macro", "line": 59, "name": "KEY_RALT"}, {"kind": "macro", "line": 60, "name": "KEY_LALT"}, {"kind": "macro", "line": 64, "name": "KEY_CAPSLOCK"}, {"kind": "macro", "line": 66, "name": "KEY_NUMLOCK"}, {"kind": "macro", "line": 67, "name": "KEY_SCRLCK"}, {"kind": "macro", "line": 68, "name": "KEY_PRTSCR"}, {"kind": "macro", "line": 69, "name": "KEY_HOME"}, {"kind": "macro", "line": 71, "name": "KEY_END"}, {"kind": "macro", "line": 72, "name": "KEY_PGUP"}, {"kind": "macro", "line": 73, "name": "KEY_PGDN"}, {"kind": "macro", "line": 74, "name": "KEY_INS"}, {"kind": "macro", "line": 75, "name": "KEY_DEL"}, {"kind": "macro", "line": 76, "name": "KEYP_0"}, {"kind": "macro", "line": 78, "name": "KEYP_1"}, {"kind": "macro", "line": 79, "name": "KEYP_2"}, {"kind": "macro", "line": 80, "name": "KEYP_3"}, {"kind": "macro", "line": 81, "name": "KEYP_4"}, {"kind": "macro", "line": 82, "name": "KEYP_5"}, {"kind": "macro", "line": 83, "name": "KEYP_6"}, {"kind": "macro", "line": 84, "name": "KEYP_7"}, {"kind": "macro", "line": 85, "name": "KEYP_8"}, {"kind": "macro", "line": 86, "name": "KEYP_9"}, {"kind": "macro", "line": 87, "name": "KEYP_DIVIDE"}, {"kind": "macro", "line": 89, "name": "KEYP_PLUS"}, {"kind": "macro", "line": 90, "name": "KEYP_MINUS"}, {"kind": "macro", "line": 91, "name": "KEYP_MULTIPLY"}, {"kind": "macro", "line": 92, "name": "KEYP_PERIOD"}, {"kind": "macro", "line": 93, "name": "KEYP_EQUALS"}, {"kind": "macro", "line": 94, "name": "KEYP_ENTER"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Put all global tate variables here. include include \"doomstat.h\" Game Mode - identify IWAD as shareware, retail etc.", "id": "progs/doomgeneric/doomstat.c", "kind": "module", "label": "doomstat.c", "language": "c", "sha256": "6c26994f9ece76c1", "symbol_count": 0, "symbols": []}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: All the global variables that store the internal state. Theoretically speaking, the internal state of the engine should be found by looking at the variables collected here, and every relevant module will have to include this header file. In practice, things are a bit messy. ifndef __D_STATE__ define __D_STATE__ We need globally shared data structures, for defining the global state variables. include \"doomdata.h\"", "id": "progs/doomgeneric/doomstat.h", "kind": "module", "label": "doomstat.h", "language": "h", "sha256": "b550e9fbbbf70ff0", "symbol_count": 3, "symbols": [{"kind": "macro", "line": 26, "name": "__D_STATE__"}, {"kind": "macro", "line": 68, "name": "logical_gamemission"}, {"kind": "macro", "line": 227, "name": "MAX_DM_STARTS"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Simple basic typedefs, isolated here to make it easier separating modules. ifndef __DOOMTYPE__ define __DOOMTYPE__ #define macros to provide functions missing in Windows. Outside Windows, we use strings.h for str[n]casecmp. ifdef _WIN32 define strcasecmp _stricmp", "id": "progs/doomgeneric/doomtype.h", "kind": "module", "label": "doomtype.h", "language": "h", "sha256": "c14454060c61de25", "symbol_count": 12, "symbols": [{"kind": "macro", "line": 22, "name": "__DOOMTYPE__"}, {"kind": "macro", "line": 29, "name": "strcasecmp"}, {"kind": "macro", "line": 31, "name": "strncasecmp"}, {"kind": "macro", "line": 50, "name": "PACKEDATTR"}, {"kind": "macro", "line": 52, "name": "PACKEDATTR"}, {"kind": "macro", "line": 87, "name": "DIR_SEPARATOR"}, {"kind": "macro", "line": 89, "name": "DIR_SEPARATOR_S"}, {"kind": "macro", "line": 90, "name": "PATH_SEPARATOR"}, {"kind": "macro", "line": 93, "name": "DIR_SEPARATOR"}, {"kind": "macro", "line": 95, "name": "DIR_SEPARATOR_S"}, {"kind": "macro", "line": 96, "name": "PATH_SEPARATOR"}, {"kind": "macro", "line": 99, "name": "arrlen"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Globally defined strings. include \"dstrings.h\"", "id": "progs/doomgeneric/dstrings.c", "kind": "module", "label": "dstrings.c", "language": "c", "sha256": "ca23811dfb9766f3", "symbol_count": 0, "symbols": []}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: DOOM strings, by language. ifndef __DSTRINGS__ define __DSTRINGS__ All important printed strings. include \"d_englsh.h\" Misc. other strings. define SAVEGAMENAME\t\"doomsav\"", "id": "progs/doomgeneric/dstrings.h", "kind": "module", "label": "dstrings.h", "language": "h", "sha256": "ab1d9ea8a94aa57f", "symbol_count": 3, "symbols": [{"kind": "macro", "line": 22, "name": "__DSTRINGS__"}, {"kind": "macro", "line": 30, "name": "SAVEGAMENAME"}, {"kind": "macro", "line": 35, "name": "NUM_QUITMESSAGES"}]}, {"id": "progs/doomgeneric/dummy.c", "kind": "module", "label": "dummy.c", "language": "c", "sha256": "1dd884aea54284e5", "symbol_count": 1, "symbols": [{"doc": "--------------------------------------------------------------------* public functions * *---------------------------------------------------------------------", "kind": "function", "line": 42, "name": "I_InitTimidityConfig", "signature": "void I_InitTimidityConfig(void)"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Game completion, final screen animation. include include Functions. include \"deh_main.h\" include \"i_system.h\" include \"i_swap.h\" include \"z_zone.h\" include \"v_video.h\" include \"w_wad.h\" include \"s_sound.h\"", "id": "progs/doomgeneric/f_finale.c", "kind": "module", "label": "f_finale.c", "language": "c", "sha256": "33cf193a307c0b33", "symbol_count": 15, "symbols": [{"doc": "F_StartFinale", "kind": "function", "line": 108, "name": "F_StartFinale", "signature": "void F_StartFinale (void)"}, {"kind": "function", "line": 157, "name": "F_Responder", "signature": "boolean F_Responder (event_t *event)"}, {"doc": "F_Ticker", "kind": "function", "line": 172, "name": "F_Ticker", "signature": "void F_Ticker (void)"}, {"kind": "function", "line": 225, "name": "F_TextWrite", "signature": "void F_TextWrite (void)"}, {"doc": "F_StartCast", "kind": "function", "line": 340, "name": "F_StartCast", "signature": "void F_StartCast (void)"}, {"doc": "F_CastTicker", "kind": "function", "line": 358, "name": "F_CastTicker", "signature": "void F_CastTicker (void)"}, {"doc": "F_CastResponder", "kind": "function", "line": 464, "name": "F_CastResponder", "signature": "boolean F_CastResponder (event_t* ev)"}, {"kind": "function", "line": 484, "name": "F_CastPrint", "signature": "void F_CastPrint (char* text)"}, {"doc": "F_CastDrawer", "kind": "function", "line": 540, "name": "F_CastDrawer", "signature": "void F_CastDrawer (void)"}, {"doc": "F_DrawPatchCol", "kind": "function", "line": 571, "name": "F_DrawPatchCol", "signature": "void\nF_DrawPatchCol\n( int\t\tx,\n patch_t*\tpatch,\n int\t\tcol )"}, {"doc": "F_BunnyScroll", "kind": "function", "line": 606, "name": "F_BunnyScroll", "signature": "void F_BunnyScroll (void)"}, {"kind": "function", "line": 660, "name": "F_ArtScreenDrawer", "signature": "static void F_ArtScreenDrawer(void)"}, {"doc": "F_Drawer", "kind": "function", "line": 702, "name": "F_Drawer", "signature": "void F_Drawer (void)"}, {"kind": "macro", "line": 56, "name": "TEXTSPEED"}, {"kind": "macro", "line": 58, "name": "TEXTWAIT"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: ifndef __F_FINALE__ define __F_FINALE__ include \"doomtype.h\" include \"d_event.h\" FINALE Called by main loop.", "id": "progs/doomgeneric/f_finale.h", "kind": "module", "label": "f_finale.h", "language": "h", "sha256": "aea25b4180f863eb", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__F_FINALE__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Mission begin melt/wipe screen special effect. include include \"z_zone.h\" include \"i_video.h\" include \"v_video.h\" include \"m_random.h\" include \"doomtype.h\" include \"f_wipe.h\"", "id": "progs/doomgeneric/f_wipe.c", "kind": "module", "label": "f_wipe.c", "language": "c", "sha256": "2c05976fd5a86f3d", "symbol_count": 10, "symbols": [{"kind": "function", "line": 40, "name": "wipe_shittyColMajorXform", "signature": "void\nwipe_shittyColMajorXform\n( short*\tarray,\n int\t\twidth,\n int\t\theight )"}, {"kind": "function", "line": 63, "name": "wipe_initColorXForm", "signature": "int\nwipe_initColorXForm\n( int\twidth,\n int\theight,\n int\tticks )"}, {"kind": "function", "line": 73, "name": "wipe_doColorXForm", "signature": "int\nwipe_doColorXForm\n( int\twidth,\n int\theight,\n int\tticks )"}, {"kind": "function", "line": 119, "name": "wipe_exitColorXForm", "signature": "int\nwipe_exitColorXForm\n( int\twidth,\n int\theight,\n int\tticks )"}, {"kind": "function", "line": 131, "name": "wipe_initMelt", "signature": "int\nwipe_initMelt\n( int\twidth,\n int\theight,\n int\tticks )"}, {"kind": "function", "line": 162, "name": "wipe_doMelt", "signature": "int\nwipe_doMelt\n( int\twidth,\n int\theight,\n int\tticks )"}, {"kind": "function", "line": 217, "name": "wipe_exitMelt", "signature": "int\nwipe_exitMelt\n( int\twidth,\n int\theight,\n int\tticks )"}, {"kind": "function", "line": 229, "name": "wipe_StartScreen", "signature": "int\nwipe_StartScreen\n( int\tx,\n int\ty,\n int\twidth,\n int\theight )"}, {"kind": "function", "line": 241, "name": "wipe_EndScreen", "signature": "int\nwipe_EndScreen\n( int\tx,\n int\ty,\n int\twidth,\n int\theight )"}, {"kind": "function", "line": 254, "name": "wipe_ScreenWipe", "signature": "int\nwipe_ScreenWipe\n( int\twipeno,\n int\tx,\n int\ty,\n int\twidth,\n int\theight,\n int\tticks )"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Mission start screen wipe/melt, special effects. ifndef __F_WIPE_H__ define __F_WIPE_H__ SCREEN WIPE PACKAGE", "id": "progs/doomgeneric/f_wipe.h", "kind": "module", "label": "f_wipe.h", "language": "h", "sha256": "8bb2ffc1c70cb27c", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__F_WIPE_H__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: none include include include include \"doomdef.h\" include \"doomkeys.h\" include \"doomstat.h\" include \"deh_main.h\" include \"deh_misc.h\"", "id": "progs/doomgeneric/g_game.c", "kind": "module", "label": "g_game.c", "language": "c", "sha256": "8901cf0a754c566f", "symbol_count": 48, "symbols": [{"kind": "function", "line": 232, "name": "G_CmdChecksum", "signature": "int G_CmdChecksum (ticcmd_t* cmd)"}, {"kind": "function", "line": 243, "name": "WeaponSelectable", "signature": "static boolean WeaponSelectable(weapontype_t weapon)"}, {"kind": "function", "line": 280, "name": "G_NextWeapon", "signature": "static int G_NextWeapon(int direction)"}, {"doc": "G_BuildTiccmd Builds a ticcmd from all of the available inputs or reads it from the demo buffer. If recording a demo, write it out", "kind": "function", "line": 322, "name": "G_BuildTiccmd", "signature": "void G_BuildTiccmd (ticcmd_t* cmd, int maketic)"}, {"doc": "G_DoLoadLevel", "kind": "function", "line": 603, "name": "G_DoLoadLevel", "signature": "void G_DoLoadLevel (void)"}, {"kind": "function", "line": 674, "name": "SetJoyButtons", "signature": "static void SetJoyButtons(unsigned int buttons_mask)"}, {"kind": "function", "line": 702, "name": "SetMouseButtons", "signature": "static void SetMouseButtons(unsigned int buttons_mask)"}, {"doc": "G_Responder Get info needed to make ticcmd_ts for the players.", "kind": "function", "line": 733, "name": "G_Responder", "signature": "boolean G_Responder (event_t* ev)"}, {"doc": "G_Ticker Make ticcmd_ts for the players.", "kind": "function", "line": 854, "name": "G_Ticker", "signature": "void G_Ticker (void)"}, {"doc": "G_InitPlayer Called at the start. Called by the game initialization functions.", "kind": "function", "line": 1039, "name": "G_InitPlayer", "signature": "void G_InitPlayer (int player)"}, {"doc": "G_PlayerFinishLevel Can when a player completes a level.", "kind": "function", "line": 1051, "name": "G_PlayerFinishLevel", "signature": "void G_PlayerFinishLevel (int player)"}, {"doc": "G_PlayerReborn Called after a player dies almost everything is cleared and initialized", "kind": "function", "line": 1072, "name": "G_PlayerReborn", "signature": "void G_PlayerReborn (int player)"}, {"kind": "function", "line": 1114, "name": "G_CheckSpot", "signature": "boolean\nG_CheckSpot\n( int\t\tplayernum,\n mapthing_t*\tmthing )"}, {"doc": "G_DeathMatchSpawnPlayer Spawns a player at one of the random death match spots called at level load and each death", "kind": "function", "line": 1223, "name": "G_DeathMatchSpawnPlayer", "signature": "void G_DeathMatchSpawnPlayer (int playernum)"}, {"doc": "G_DoReborn", "kind": "function", "line": 1250, "name": "G_DoReborn", "signature": "void G_DoReborn (int playernum)"}, {"kind": "function", "line": 1294, "name": "G_ScreenShot", "signature": "void G_ScreenShot (void)"}, {"kind": "function", "line": 1327, "name": "G_ExitLevel", "signature": "void G_ExitLevel (void)"}, {"doc": "Here's for the german edition.", "kind": "function", "line": 1335, "name": "G_SecretExitLevel", "signature": "void G_SecretExitLevel (void)"}, {"kind": "function", "line": 1345, "name": "G_DoCompleted", "signature": "void G_DoCompleted (void)"}, {"doc": "G_WorldDone", "kind": "function", "line": 1494, "name": "G_WorldDone", "signature": "void G_WorldDone (void)"}, {"kind": "function", "line": 1518, "name": "G_DoWorldDone", "signature": "void G_DoWorldDone (void)"}, {"kind": "function", "line": 1538, "name": "G_LoadGame", "signature": "void G_LoadGame (char* name)"}, {"doc": "define VERSIONSIZE\t\t16", "kind": "function", "line": 1546, "name": "G_DoLoadGame", "signature": "void G_DoLoadGame (void)"}, {"doc": "G_SaveGame Called by the menu task. Description is a 24 byte text string", "kind": "function", "line": 1600, "name": "G_SaveGame", "signature": "void\nG_SaveGame\n( int\tslot,\n char*\tdescription )"}, {"kind": "function", "line": 1609, "name": "G_DoSaveGame", "signature": "void G_DoSaveGame (void)"}, {"kind": "function", "line": 1696, "name": "G_DeferedInitNew", "signature": "void\nG_DeferedInitNew\n( skill_t\tskill,\n int\t\tepisode,\n int\t\tmap)"}, {"kind": "function", "line": 1708, "name": "G_DoNewGame", "signature": "void G_DoNewGame (void)"}, {"kind": "function", "line": 1724, "name": "G_InitNew", "signature": "void\nG_InitNew\n( skill_t\tskill,\n int\t\tepisode,\n int\t\tmap )"}, {"doc": "DEMO RECORDING define DEMOMARKER\t\t0x80", "kind": "function", "line": 1896, "name": "G_ReadDemoTiccmd", "signature": "void G_ReadDemoTiccmd (ticcmd_t* cmd)"}, {"doc": "Increase the size of the demo buffer to allow unlimited demos", "kind": "function", "line": 1925, "name": "IncreaseDemoBuffer", "signature": "static void IncreaseDemoBuffer(void)"}, {"kind": "function", "line": 1955, "name": "G_WriteDemoTiccmd", "signature": "void G_WriteDemoTiccmd (ticcmd_t* cmd)"}, {"doc": "G_RecordDemo", "kind": "function", "line": 2010, "name": "G_RecordDemo", "signature": "void G_RecordDemo (char *name)"}, {"doc": "Get the demo version code appropriate for the version set in gameversion.", "kind": "function", "line": 2040, "name": "G_VanillaVersionCode", "signature": "int G_VanillaVersionCode(void)"}, {"kind": "function", "line": 2057, "name": "G_BeginRecording", "signature": "void G_BeginRecording (void)"}, {"kind": "function", "line": 2106, "name": "G_DeferedPlayDemo", "signature": "void G_DeferedPlayDemo (char* name)"}, {"doc": "Generate a string describing a demo version", "kind": "function", "line": 2114, "name": "DemoVersionDescription", "signature": "static char *DemoVersionDescription(int version)"}, {"kind": "function", "line": 2151, "name": "G_DoPlayDemo", "signature": "void G_DoPlayDemo (void)"}, {"doc": "G_TimeDemo", "kind": "function", "line": 2215, "name": "G_TimeDemo", "signature": "void G_TimeDemo (char* name)"}, {"doc": "=================== = = G_CheckDemoStatus = = Called after a death or level completion to allow demos to be cleaned up = Returns true if a new demo loop action will take place ===================", "kind": "function", "line": 2242, "name": "G_CheckDemoStatus", "signature": "boolean G_CheckDemoStatus (void)"}, {"kind": "macro", "line": 74, "name": "SAVEGAMESIZE"}, {"kind": "macro", "line": 151, "name": "MAXPLMOVE"}, {"kind": "macro", "line": 153, "name": "TURBOTHRESHOLD"}, {"kind": "macro", "line": 192, "name": "SLOWTURNTICS"}, {"kind": "macro", "line": 194, "name": "NUMKEYS"}, {"kind": "macro", "line": 196, "name": "MAX_JOY_BUTTONS"}, {"kind": "macro", "line": 224, "name": "BODYQUESIZE"}, {"kind": "macro", "line": 1544, "name": "VERSIONSIZE"}, {"kind": "macro", "line": 1895, "name": "DEMOMARKER"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Duh. ifndef __G_GAME__ define __G_GAME__ include \"doomdef.h\" include \"d_event.h\" include \"d_ticcmd.h\" GAME", "id": "progs/doomgeneric/g_game.h", "kind": "module", "label": "g_game.h", "language": "h", "sha256": "6fd89d9b4278cabf", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__G_GAME__"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: GUS emulation code. Actually emulating a GUS is far too much work; fortunately GUS \"emulation\" already exists in the form of Timidity, which supports GUS patch files. This code therefore converts Doom's DMXGUS lump into an equivalent Timidity configuration file. include include include include include \"w_wad.h\" include \"z_zone.h\"", "id": "progs/doomgeneric/gusconf.c", "kind": "module", "label": "gusconf.c", "language": "c", "sha256": "b187edd4b2d5278d", "symbol_count": 9, "symbols": [{"kind": "function", "line": 42, "name": "MappingIndex", "signature": "static unsigned int MappingIndex(void)"}, {"kind": "function", "line": 60, "name": "SplitLine", "signature": "static int SplitLine(char *line, char **fields, unsigned int max_fields)"}, {"kind": "function", "line": 107, "name": "ParseLine", "signature": "static void ParseLine(gus_config_t *config, char *line)"}, {"kind": "function", "line": 128, "name": "ParseDMXConfig", "signature": "static void ParseDMXConfig(char *dmxconf, gus_config_t *config)"}, {"kind": "function", "line": 164, "name": "FreeDMXConfig", "signature": "static void FreeDMXConfig(gus_config_t *config)"}, {"kind": "function", "line": 174, "name": "ReadDMXConfig", "signature": "static char *ReadDMXConfig(void)"}, {"kind": "function", "line": 196, "name": "WriteTimidityConfig", "signature": "static boolean WriteTimidityConfig(char *path, gus_config_t *config)"}, {"kind": "function", "line": 243, "name": "GUS_WriteConfig", "signature": "boolean GUS_WriteConfig(char *path)"}, {"kind": "macro", "line": 31, "name": "MAX_INSTRUMENTS"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: GUS emulation code. ifndef __GUSCONF_H__ define __GUSCONF_H__ include \"doomtype.h\"", "id": "progs/doomgeneric/gusconf.h", "kind": "module", "label": "gusconf.h", "language": "h", "sha256": "7d6216495e211a23", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 19, "name": "__GUSCONF_H__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: heads-up text and input code include include \"doomdef.h\" include \"doomkeys.h\" include \"v_video.h\" include \"i_swap.h\" include \"hu_lib.h\" include \"r_local.h\" include \"r_draw.h\"", "id": "progs/doomgeneric/hu_lib.c", "kind": "module", "label": "hu_lib.c", "language": "c", "sha256": "bda103386cca4a01", "symbol_count": 21, "symbols": [{"kind": "function", "line": 35, "name": "HUlib_init", "signature": "void HUlib_init(void)"}, {"kind": "function", "line": 39, "name": "HUlib_clearTextLine", "signature": "void HUlib_clearTextLine(hu_textline_t* t)"}, {"kind": "function", "line": 46, "name": "HUlib_initTextLine", "signature": "void\nHUlib_initTextLine\n( hu_textline_t*\tt,\n int\t\t\tx,\n int\t\t\ty,\n patch_t**\t\tf,\n int\t\t\tsc )"}, {"kind": "function", "line": 61, "name": "HUlib_addCharToTextLine", "signature": "boolean\nHUlib_addCharToTextLine\n( hu_textline_t*\tt,\n char\t\t\tch )"}, {"kind": "function", "line": 79, "name": "HUlib_delCharFromTextLine", "signature": "boolean HUlib_delCharFromTextLine(hu_textline_t* t)"}, {"kind": "function", "line": 92, "name": "HUlib_drawTextLine", "signature": "void\nHUlib_drawTextLine\n( hu_textline_t*\tl,\n boolean\t\tdrawcursor )"}, {"doc": "sorta called by HU_Erase and just better darn get things straight", "kind": "function", "line": 137, "name": "HUlib_eraseTextLine", "signature": "void HUlib_eraseTextLine(hu_textline_t* l)"}, {"kind": "function", "line": 167, "name": "HUlib_initSText", "signature": "void\nHUlib_initSText\n( hu_stext_t*\ts,\n int\t\tx,\n int\t\ty,\n int\t\th,\n patch_t**\tfont,\n int\t\tstar..."}, {"kind": "function", "line": 191, "name": "HUlib_addLineToSText", "signature": "void HUlib_addLineToSText(hu_stext_t* s)"}, {"kind": "function", "line": 207, "name": "HUlib_addMessageToSText", "signature": "void\nHUlib_addMessageToSText\n( hu_stext_t*\ts,\n char*\t\tprefix,\n char*\t\tmsg )"}, {"kind": "function", "line": 222, "name": "HUlib_drawSText", "signature": "void HUlib_drawSText(hu_stext_t* s)"}, {"kind": "function", "line": 245, "name": "HUlib_eraseSText", "signature": "void HUlib_eraseSText(hu_stext_t* s)"}, {"kind": "function", "line": 260, "name": "HUlib_initIText", "signature": "void\nHUlib_initIText\n( hu_itext_t*\tit,\n int\t\tx,\n int\t\ty,\n patch_t**\tfont,\n int\t\tstartchar,\n ..."}, {"doc": "The following deletion routines adhere to the left margin restriction", "kind": "function", "line": 278, "name": "HUlib_delCharFromIText", "signature": "void HUlib_delCharFromIText(hu_itext_t* it)"}, {"kind": "function", "line": 283, "name": "HUlib_eraseLineFromIText", "signature": "void HUlib_eraseLineFromIText(hu_itext_t* it)"}, {"doc": "Resets left margin as well", "kind": "function", "line": 291, "name": "HUlib_resetIText", "signature": "void HUlib_resetIText(hu_itext_t* it)"}, {"kind": "function", "line": 296, "name": "HUlib_addPrefixToIText", "signature": "void\nHUlib_addPrefixToIText\n( hu_itext_t*\tit,\n char*\t\tstr )"}, {"doc": "wrapper function for handling general keyed input. returns true if it ate the key", "kind": "function", "line": 309, "name": "HUlib_keyInIText", "signature": "boolean\nHUlib_keyInIText\n( hu_itext_t*\tit,\n unsigned char ch )"}, {"kind": "function", "line": 328, "name": "HUlib_drawIText", "signature": "void HUlib_drawIText(hu_itext_t* it)"}, {"kind": "function", "line": 339, "name": "HUlib_eraseIText", "signature": "void HUlib_eraseIText(hu_itext_t* it)"}, {"kind": "macro", "line": 32, "name": "noterased"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: none ifndef __HULIB__ define __HULIB__ We are referring to patches. include \"r_defs.h\" font stuff define HU_CHARERASE\tKEY_BACKSPACE define HU_MAXLINES\t\t4 define HU_MAXLINELENGTH\t80", "id": "progs/doomgeneric/hu_lib.h", "kind": "module", "label": "hu_lib.h", "language": "h", "sha256": "3f905aa87c03ba01", "symbol_count": 4, "symbols": [{"kind": "macro", "line": 19, "name": "__HULIB__"}, {"kind": "macro", "line": 25, "name": "HU_CHARERASE"}, {"kind": "macro", "line": 26, "name": "HU_MAXLINES"}, {"kind": "macro", "line": 28, "name": "HU_MAXLINELENGTH"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Heads-up displays include include \"doomdef.h\" include \"doomkeys.h\" include \"z_zone.h\" include \"deh_main.h\" include \"i_swap.h\" include \"i_video.h\" include \"hu_stuff.h\"", "id": "progs/doomgeneric/hu_stuff.c", "kind": "module", "label": "hu_stuff.c", "language": "c", "sha256": "9d623746758711f5", "symbol_count": 23, "symbols": [{"kind": "function", "line": 285, "name": "HU_Init", "signature": "void HU_Init(void)"}, {"kind": "function", "line": 302, "name": "HU_Stop", "signature": "void HU_Stop(void)"}, {"kind": "function", "line": 307, "name": "HU_Start", "signature": "void HU_Start(void)"}, {"kind": "function", "line": 382, "name": "HU_Drawer", "signature": "void HU_Drawer(void)"}, {"kind": "function", "line": 392, "name": "HU_Erase", "signature": "void HU_Erase(void)"}, {"kind": "function", "line": 401, "name": "HU_Ticker", "signature": "void HU_Ticker(void)"}, {"kind": "function", "line": 480, "name": "HU_queueChatChar", "signature": "void HU_queueChatChar(char c)"}, {"kind": "function", "line": 494, "name": "HU_dequeueChatChar", "signature": "char HU_dequeueChatChar(void)"}, {"kind": "function", "line": 511, "name": "HU_Responder", "signature": "boolean HU_Responder(event_t *ev)"}, {"kind": "macro", "line": 47, "name": "HU_TITLE"}, {"kind": "macro", "line": 48, "name": "HU_TITLE2"}, {"kind": "macro", "line": 49, "name": "HU_TITLEP"}, {"kind": "macro", "line": 50, "name": "HU_TITLET"}, {"kind": "macro", "line": 51, "name": "HU_TITLE_CHEX"}, {"kind": "macro", "line": 52, "name": "HU_TITLEHEIGHT"}, {"kind": "macro", "line": 53, "name": "HU_TITLEX"}, {"kind": "macro", "line": 54, "name": "HU_TITLEY"}, {"kind": "macro", "line": 55, "name": "HU_INPUTTOGGLE"}, {"kind": "macro", "line": 57, "name": "HU_INPUTX"}, {"kind": "macro", "line": 58, "name": "HU_INPUTY"}, {"kind": "macro", "line": 59, "name": "HU_INPUTWIDTH"}, {"kind": "macro", "line": 60, "name": "HU_INPUTHEIGHT"}, {"kind": "macro", "line": 474, "name": "QUEUESIZE"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Head up display ifndef __HU_STUFF_H__ define __HU_STUFF_H__ include \"d_event.h\" Globally visible constants. define HU_FONTSTART\t'!'\t// the first font characters define HU_FONTEND\t'_'\t// the last font characters Calculate # of glyphs in font.", "id": "progs/doomgeneric/hu_stuff.h", "kind": "module", "label": "hu_stuff.h", "language": "h", "sha256": "387cb2aebc0fe50e", "symbol_count": 10, "symbols": [{"kind": "macro", "line": 19, "name": "__HU_STUFF_H__"}, {"kind": "macro", "line": 27, "name": "HU_FONTSTART"}, {"kind": "macro", "line": 28, "name": "HU_FONTEND"}, {"kind": "macro", "line": 31, "name": "HU_FONTSIZE"}, {"kind": "macro", "line": 32, "name": "HU_BROADCAST"}, {"kind": "macro", "line": 34, "name": "HU_MSGX"}, {"kind": "macro", "line": 36, "name": "HU_MSGY"}, {"kind": "macro", "line": 37, "name": "HU_MSGWIDTH"}, {"kind": "macro", "line": 38, "name": "HU_MSGHEIGHT"}, {"kind": "macro", "line": 39, "name": "HU_MSGTIMEOUT"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 1993-2008 Raven Software This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. SDL implementation of the Hexen CD interface. include ifdef ORIGCODE include \"SDL.h\" include \"SDL_cdrom.h\" endif include \"doomtype.h\" include \"i_cdmus.h\" ifdef ORIGCODE", "id": "progs/doomgeneric/i_cdmus.c", "kind": "module", "label": "i_cdmus.c", "language": "c", "sha256": "08d8a487603dfcac", "symbol_count": 9, "symbols": [{"kind": "function", "line": 37, "name": "I_CDMusInit", "signature": "int I_CDMusInit(void)"}, {"doc": "We cannot print status messages inline during startup, they must be deferred until after I_CDMusInit has returned.", "kind": "function", "line": 91, "name": "I_CDMusPrintStartup", "signature": "void I_CDMusPrintStartup(void)"}, {"kind": "function", "line": 106, "name": "I_CDMusPlay", "signature": "int I_CDMusPlay(int track)"}, {"kind": "function", "line": 129, "name": "I_CDMusStop", "signature": "int I_CDMusStop(void)"}, {"kind": "function", "line": 144, "name": "I_CDMusResume", "signature": "int I_CDMusResume(void)"}, {"kind": "function", "line": 159, "name": "I_CDMusSetVolume", "signature": "int I_CDMusSetVolume(int volume)"}, {"kind": "function", "line": 168, "name": "I_CDMusFirstTrack", "signature": "int I_CDMusFirstTrack(void)"}, {"kind": "function", "line": 201, "name": "I_CDMusLastTrack", "signature": "int I_CDMusLastTrack(void)"}, {"kind": "function", "line": 218, "name": "I_CDMusTrackLength", "signature": "int I_CDMusTrackLength(int track_num)"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 1993-2008 Raven Software This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. i_cdmus.h ifndef __ICDMUS__ define __ICDMUS__ define CDERR_NOTINSTALLED 10 // MSCDEX not installed define CDERR_NOAUDIOSUPPORT 11 // CD-ROM Doesn't support audio define CDERR_NOAUDIOTRACKS 12 // Current CD has no audio tracks define CDERR_BADDRIVE 20 // Bad drive number define CDERR_BADTRACK 21 // Bad track number define CDERR_IOCTLBUFFMEM 22 // Not enough low memory for IOCTL define CDERR_DEVREQBASE 100 // DevReq errors", "id": "progs/doomgeneric/i_cdmus.h", "kind": "module", "label": "i_cdmus.h", "language": "h", "sha256": "ebe68884a6eb1dff", "symbol_count": 8, "symbols": [{"kind": "macro", "line": 19, "name": "__ICDMUS__"}, {"kind": "macro", "line": 20, "name": "CDERR_NOTINSTALLED"}, {"kind": "macro", "line": 22, "name": "CDERR_NOAUDIOSUPPORT"}, {"kind": "macro", "line": 23, "name": "CDERR_NOAUDIOTRACKS"}, {"kind": "macro", "line": 24, "name": "CDERR_BADDRIVE"}, {"kind": "macro", "line": 25, "name": "CDERR_BADTRACK"}, {"kind": "macro", "line": 26, "name": "CDERR_IOCTLBUFFMEM"}, {"kind": "macro", "line": 27, "name": "CDERR_DEVREQBASE"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Exit text-mode ENDOOM screen. include include include \"config.h\" include \"doomtype.h\" include \"i_video.h\" ifdef ORIGCODE include \"txt_main.h\" endif define ENDOOM_W 80 define ENDOOM_H 25", "id": "progs/doomgeneric/i_endoom.c", "kind": "module", "label": "i_endoom.c", "language": "c", "sha256": "188dceeab528c268", "symbol_count": 3, "symbols": [{"doc": "Displays the text mode ending screen after the game quits", "kind": "function", "line": 35, "name": "I_Endoom", "signature": "void I_Endoom(byte *endoom_data)"}, {"kind": "macro", "line": 28, "name": "ENDOOM_W"}, {"kind": "macro", "line": 30, "name": "ENDOOM_H"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Exit text-mode ENDOOM screen. ifndef __I_ENDOOM__ define __I_ENDOOM__ Display the Endoom screen on shutdown. Pass a pointer to the ENDOOM lump.", "id": "progs/doomgeneric/i_endoom.h", "kind": "module", "label": "i_endoom.h", "language": "h", "sha256": "e304d78e96a5751d", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__I_ENDOOM__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. include include include include include include include \"config.h\" include \"deh_str.h\" include \"doomtype.h\" include \"doomkeys.h\" include \"i_joystick.h\" include \"i_system.h\" include \"i_swap.h\"", "id": "progs/doomgeneric/i_input.c", "kind": "module", "label": "i_input.c", "language": "c", "sha256": "871a04b652b90282", "symbol_count": 5, "symbols": [{"kind": "function", "line": 223, "name": "TranslateKey", "signature": "static unsigned char TranslateKey(unsigned char key)"}, {"doc": "Get the equivalent ASCII (Unicode?) character for a keypress.", "kind": "function", "line": 241, "name": "GetTypedChar", "signature": "static unsigned char GetTypedChar(unsigned char key)"}, {"kind": "function", "line": 262, "name": "UpdateShiftStatus", "signature": "static void UpdateShiftStatus(int pressed, unsigned char key)"}, {"kind": "function", "line": 277, "name": "I_GetEvent", "signature": "void I_GetEvent(void)"}, {"kind": "function", "line": 337, "name": "I_InitInput", "signature": "void I_InitInput(void)"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: SDL Joystick code. ifdef ORIGCODE include \"SDL.h\" include \"SDL_joystick.h\" endif include include include include \"doomtype.h\" include \"d_event.h\" include \"i_joystick.h\" include \"i_system.h\"", "id": "progs/doomgeneric/i_joystick.c", "kind": "module", "label": "i_joystick.c", "language": "c", "sha256": "4113cafe15ae07e1", "symbol_count": 10, "symbols": [{"kind": "function", "line": 76, "name": "I_ShutdownJoystick", "signature": "void I_ShutdownJoystick(void)"}, {"doc": "ifdef ORIGCODE", "kind": "function", "line": 90, "name": "IsValidAxis", "signature": "static boolean IsValidAxis(int axis)"}, {"doc": "endif", "kind": "function", "line": 114, "name": "I_InitJoystick", "signature": "void I_InitJoystick(void)"}, {"doc": "ifdef ORIGCODE", "kind": "function", "line": 171, "name": "IsAxisButton", "signature": "static boolean IsAxisButton(int physbutton)"}, {"doc": "Get the state of the given virtual button.", "kind": "function", "line": 202, "name": "ReadButtonState", "signature": "static int ReadButtonState(int vbutton)"}, {"doc": "Get a bitmask of all currently-pressed buttons", "kind": "function", "line": 227, "name": "GetButtonsState", "signature": "static int GetButtonsState(void)"}, {"doc": "Read the state of an axis, inverting if necessary.", "kind": "function", "line": 247, "name": "GetAxisState", "signature": "static int GetAxisState(int axis, int invert)"}, {"doc": "endif", "kind": "function", "line": 321, "name": "I_UpdateJoystick", "signature": "void I_UpdateJoystick(void)"}, {"kind": "function", "line": 338, "name": "I_BindJoystickVariables", "signature": "void I_BindJoystickVariables(void)"}, {"kind": "macro", "line": 37, "name": "DEAD_ZONE"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: System-specific joystick interface. ifndef __I_JOYSTICK__ define __I_JOYSTICK__ Number of \"virtual\" joystick buttons defined in configuration files. This needs to be at least as large as the number of different key bindings supported by the higher-level game code (joyb* variables). define NUM_VIRTUAL_BUTTONS 10 If this bit is set in a configuration file axis value, the axis is not actually a joystick axis, but instead is a \"button axis\". This means that instead of reading an SDL joystick axis, we read the state of two buttons to get the axis value. This is needed for eg.", "id": "progs/doomgeneric/i_joystick.h", "kind": "module", "label": "i_joystick.h", "language": "h", "sha256": "51e77d0e77e0a9be", "symbol_count": 14, "symbols": [{"kind": "macro", "line": 20, "name": "__I_JOYSTICK__"}, {"kind": "macro", "line": 25, "name": "NUM_VIRTUAL_BUTTONS"}, {"kind": "macro", "line": 33, "name": "BUTTON_AXIS"}, {"kind": "macro", "line": 36, "name": "IS_BUTTON_AXIS"}, {"kind": "macro", "line": 39, "name": "BUTTON_AXIS_NEG"}, {"kind": "macro", "line": 40, "name": "BUTTON_AXIS_POS"}, {"kind": "macro", "line": 43, "name": "CREATE_BUTTON_AXIS"}, {"kind": "macro", "line": 48, "name": "HAT_AXIS"}, {"kind": "macro", "line": 49, "name": "IS_HAT_AXIS"}, {"kind": "macro", "line": 53, "name": "HAT_AXIS_HAT"}, {"kind": "macro", "line": 55, "name": "HAT_AXIS_DIRECTION"}, {"kind": "macro", "line": 56, "name": "CREATE_HAT_AXIS"}, {"kind": "macro", "line": 59, "name": "HAT_AXIS_HORIZONTAL"}, {"kind": "macro", "line": 61, "name": "HAT_AXIS_VERTICAL"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Main program, simply calls D_DoomMain high level loop. #include \"config.h\" include #include \"doomtype.h\" #include \"i_system.h\" include \"m_argv.h\" D_DoomMain() Not a globally visible function, just included for source reference, calls all startup code, parses command line options.", "id": "progs/doomgeneric/i_main.c", "kind": "module", "label": "i_main.c", "language": "c", "sha256": "c5a98b5b34564d0e", "symbol_count": 1, "symbols": [{"kind": "function", "line": 38, "name": "main", "signature": "int main(int argc, char **argv)"}]}, {"doc": "include include include include \"doomtype.h\" include \"doomfeatures.h\" include \"i_sound.h\" include \"w_wad.h\" include \"z_zone.h\" include \"doomgeneric.h\" define PCSPK_CHANNELS 4 define PCSPK_TICK_MS 14", "id": "progs/doomgeneric/i_minios_sound.c", "kind": "module", "label": "i_minios_sound.c", "language": "c", "sha256": "70b9e342ff07bc36", "symbol_count": 14, "symbols": [{"kind": "function", "line": 30, "name": "sys_tone", "signature": "static long sys_tone(unsigned f)"}, {"kind": "function", "line": 34, "name": "sys_time", "signature": "static long sys_time(void)"}, {"kind": "function", "line": 56, "name": "PCSPK_Init", "signature": "static boolean PCSPK_Init(boolean use_sfx_prefix)"}, {"kind": "function", "line": 63, "name": "PCSPK_Shutdown", "signature": "static void PCSPK_Shutdown(void)"}, {"kind": "function", "line": 68, "name": "PCSPK_GetSfxLumpNum", "signature": "static int PCSPK_GetSfxLumpNum(sfxinfo_t *sfx)"}, {"kind": "function", "line": 79, "name": "free_channel", "signature": "static void free_channel(int i)"}, {"kind": "function", "line": 88, "name": "PCSPK_Update", "signature": "static void PCSPK_Update(void)"}, {"kind": "function", "line": 120, "name": "PCSPK_UpdateSoundParams", "signature": "static void PCSPK_UpdateSoundParams(int ch, int v, int s)"}, {"kind": "function", "line": 124, "name": "PCSPK_StartSound", "signature": "static int PCSPK_StartSound(sfxinfo_t *sfx, int channel, int vol, int sep)"}, {"kind": "function", "line": 174, "name": "PCSPK_StopSound", "signature": "static void PCSPK_StopSound(int channel)"}, {"kind": "function", "line": 180, "name": "PCSPK_SoundIsPlaying", "signature": "static boolean PCSPK_SoundIsPlaying(int channel)"}, {"kind": "function", "line": 186, "name": "PCSPK_CacheSounds", "signature": "static void PCSPK_CacheSounds(sfxinfo_t *s, int n)"}, {"kind": "macro", "line": 10, "name": "PCSPK_CHANNELS"}, {"kind": "macro", "line": 12, "name": "PCSPK_TICK_MS"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Screen scale-up code: 1x,2x,3x,4x pixel doubling Aspect ratio-correcting stretch functions include include include include \"doomtype.h\" include \"i_video.h\" include \"m_argv.h\" include \"z_zone.h\"", "id": "progs/doomgeneric/i_scale.c", "kind": "module", "label": "i_scale.c", "language": "c", "sha256": "03827ee7960994cb", "symbol_count": 39, "symbols": [{"doc": "Called to set the source and destination buffers before doing the scale.", "kind": "function", "line": 60, "name": "I_InitScale", "signature": "void I_InitScale(byte *_src_buffer, byte *_dest_buffer, int _dest_pitch)"}, {"doc": "1x scale doesn't really do any scaling: it just copies the buffer a line at a time for when pitch != SCREENWIDTH (!native_surface)", "kind": "function", "line": 74, "name": "I_Scale1x", "signature": "static boolean I_Scale1x(int x1, int y1, int x2, int y2)"}, {"doc": "2x scale (640x400)", "kind": "function", "line": 104, "name": "I_Scale2x", "signature": "static boolean I_Scale2x(int x1, int y1, int x2, int y2)"}, {"doc": "3x scale (960x600)", "kind": "function", "line": 145, "name": "I_Scale3x", "signature": "static boolean I_Scale3x(int x1, int y1, int x2, int y2)"}, {"doc": "4x scale (1280x800)", "kind": "function", "line": 190, "name": "I_Scale4x", "signature": "static boolean I_Scale4x(int x1, int y1, int x2, int y2)"}, {"doc": "5x scale (1600x1000)", "kind": "function", "line": 239, "name": "I_Scale5x", "signature": "static boolean I_Scale5x(int x1, int y1, int x2, int y2)"}, {"doc": "Search through the given palette, finding the nearest color that matches the given color.", "kind": "function", "line": 294, "name": "FindNearestColor", "signature": "static int FindNearestColor(byte *palette, int r, int g, int b)"}, {"doc": "Create a stretch table. This is a lookup table for blending colors. pct specifies the bias between the two colors: 0 = all y, 100 = all x. NB: This is identical to the lookup tables used in other ports for translucency.", "kind": "function", "line": 331, "name": "GenerateStretchTable", "signature": "static byte *GenerateStretchTable(byte *palette, int pct)"}, {"doc": "Called at startup to generate the lookup tables for aspect ratio correcting scale up.", "kind": "function", "line": 360, "name": "I_InitStretchTables", "signature": "static void I_InitStretchTables(byte *palette)"}, {"doc": "Create 50%/50% table for 800x600 squash mode", "kind": "function", "line": 386, "name": "I_InitSquashTable", "signature": "static void I_InitSquashTable(byte *palette)"}, {"doc": "Destroy the scaling lookup tables. This should only ever be called if switching to a completely different palette from the normal one (in which case the mappings no longer make any sense).", "kind": "function", "line": 403, "name": "I_ResetScaleTables", "signature": "void I_ResetScaleTables(byte *palette)"}, {"doc": "Aspect ratio correcting scale up functions. These double up pixels to stretch the screen when using a 4:3 screen mode.", "kind": "function", "line": 433, "name": "WriteBlendedLine1x", "signature": "static inline void WriteBlendedLine1x(byte *dest, byte *src1, byte *src2, \n ..."}, {"doc": "1x stretch (320x240)", "kind": "function", "line": 449, "name": "I_Stretch1x", "signature": "static boolean I_Stretch1x(int x1, int y1, int x2, int y2)"}, {"kind": "function", "line": 506, "name": "WriteLine2x", "signature": "static inline void WriteLine2x(byte *dest, byte *src)"}, {"kind": "function", "line": 519, "name": "WriteBlendedLine2x", "signature": "static inline void WriteBlendedLine2x(byte *dest, byte *src1, byte *src2, \n ..."}, {"doc": "2x stretch (640x480)", "kind": "function", "line": 538, "name": "I_Stretch2x", "signature": "static boolean I_Stretch2x(int x1, int y1, int x2, int y2)"}, {"kind": "function", "line": 619, "name": "WriteLine3x", "signature": "static inline void WriteLine3x(byte *dest, byte *src)"}, {"kind": "function", "line": 633, "name": "WriteBlendedLine3x", "signature": "static inline void WriteBlendedLine3x(byte *dest, byte *src1, byte *src2, \n ..."}, {"doc": "3x stretch (960x720)", "kind": "function", "line": 653, "name": "I_Stretch3x", "signature": "static boolean I_Stretch3x(int x1, int y1, int x2, int y2)"}, {"kind": "function", "line": 758, "name": "WriteLine4x", "signature": "static inline void WriteLine4x(byte *dest, byte *src)"}, {"kind": "function", "line": 773, "name": "WriteBlendedLine4x", "signature": "static inline void WriteBlendedLine4x(byte *dest, byte *src1, byte *src2, \n ..."}, {"doc": "4x stretch (1280x960)", "kind": "function", "line": 794, "name": "I_Stretch4x", "signature": "static boolean I_Stretch4x(int x1, int y1, int x2, int y2)"}, {"kind": "function", "line": 923, "name": "WriteLine5x", "signature": "static inline void WriteLine5x(byte *dest, byte *src)"}, {"doc": "5x stretch (1600x1200)", "kind": "function", "line": 941, "name": "I_Stretch5x", "signature": "static boolean I_Stretch5x(int x1, int y1, int x2, int y2)"}, {"doc": "1x squashed scale (256x200)", "kind": "function", "line": 1029, "name": "WriteSquashedLine1x", "signature": "static inline void WriteSquashedLine1x(byte *dest, byte *src)"}, {"doc": "1x squashed (256x200)", "kind": "function", "line": 1060, "name": "I_Squash1x", "signature": "static boolean I_Squash1x(int x1, int y1, int x2, int y2)"}, {"kind": "function", "line": 1101, "name": "WriteSquashedLine2x", "signature": "static inline void WriteSquashedLine2x(byte *dest, byte *src)"}, {"doc": "2x squash (512x400)", "kind": "function", "line": 1159, "name": "I_Squash2x", "signature": "static boolean I_Squash2x(int x1, int y1, int x2, int y2)"}, {"kind": "function", "line": 1196, "name": "WriteSquashedLine3x", "signature": "static inline void WriteSquashedLine3x(byte *dest, byte *src)"}, {"doc": "3x scale squashed (800x600) This is a special case that uses the half_stretch_table (50%) rather than the normal stretch_tables(20,40%), to scale up to 800x600 exactly.", "kind": "function", "line": 1242, "name": "I_Squash3x", "signature": "static boolean I_Squash3x(int x1, int y1, int x2, int y2)"}, {"kind": "function", "line": 1278, "name": "WriteSquashedLine4x", "signature": "static inline void WriteSquashedLine4x(byte *dest, byte *src)"}, {"doc": "4x squashed (1024x800)", "kind": "function", "line": 1353, "name": "I_Squash4x", "signature": "static boolean I_Squash4x(int x1, int y1, int x2, int y2)"}, {"kind": "function", "line": 1389, "name": "WriteSquashedLine5x", "signature": "static inline void WriteSquashedLine5x(byte *dest, byte *src)"}, {"doc": "5x squashed (1280x1000)", "kind": "function", "line": 1418, "name": "I_Squash5x", "signature": "static boolean I_Squash5x(int x1, int y1, int x2, int y2)"}, {"kind": "macro", "line": 32, "name": "inline"}, {"kind": "macro", "line": 1098, "name": "DRAW_PIXEL2"}, {"kind": "macro", "line": 1192, "name": "DRAW_PIXEL3"}, {"kind": "macro", "line": 1275, "name": "DRAW_PIXEL4"}, {"kind": "macro", "line": 1386, "name": "DRAW_PIXEL5"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Pixel-doubling scale up functions. ifndef __I_SCALE__ define __I_SCALE__ include \"doomtype.h\"", "id": "progs/doomgeneric/i_scale.h", "kind": "module", "label": "i_scale.h", "language": "h", "sha256": "5a7d9dbd64598f9f", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__I_SCALE__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: none include include ifdef ORIGCODE include \"SDL_mixer.h\" endif include \"config.h\" include \"doomfeatures.h\" include \"doomtype.h\" ifdef ORIGCODE include \"gusconf.h\"", "id": "progs/doomgeneric/i_sound.c", "kind": "module", "label": "i_sound.c", "language": "c", "sha256": "62219610e5df7180", "symbol_count": 24, "symbols": [{"doc": "Check if a sound device is in the given list of devices", "kind": "function", "line": 113, "name": "SndDeviceInList", "signature": "static boolean SndDeviceInList(snddevice_t device, snddevice_t *list,\n ..."}, {"doc": "Find and initialize a sound_module_t appropriate for the setting in snd_sfxdevice.", "kind": "function", "line": 132, "name": "InitSfxModule", "signature": "static void InitSfxModule(boolean use_sfx_prefix)"}, {"doc": "Initialize music according to snd_musicdevice.", "kind": "function", "line": 160, "name": "InitMusicModule", "signature": "static void InitMusicModule(void)"}, {"doc": "Initializes sound stuff, including volume Sets channels, SFX and music volume, allocates channel buffer, sets S_sfx lookup.", "kind": "function", "line": 192, "name": "I_InitSound", "signature": "void I_InitSound(boolean use_sfx_prefix)"}, {"kind": "function", "line": 247, "name": "I_ShutdownSound", "signature": "void I_ShutdownSound(void)"}, {"kind": "function", "line": 260, "name": "I_GetSfxLumpNum", "signature": "int I_GetSfxLumpNum(sfxinfo_t *sfxinfo)"}, {"kind": "function", "line": 272, "name": "I_UpdateSound", "signature": "void I_UpdateSound(void)"}, {"kind": "function", "line": 285, "name": "CheckVolumeSeparation", "signature": "static void CheckVolumeSeparation(int *vol, int *sep)"}, {"kind": "function", "line": 306, "name": "I_UpdateSoundParams", "signature": "void I_UpdateSoundParams(int channel, int vol, int sep)"}, {"kind": "function", "line": 315, "name": "I_StartSound", "signature": "int I_StartSound(sfxinfo_t *sfxinfo, int channel, int vol, int sep)"}, {"kind": "function", "line": 328, "name": "I_StopSound", "signature": "void I_StopSound(int channel)"}, {"kind": "function", "line": 336, "name": "I_SoundIsPlaying", "signature": "boolean I_SoundIsPlaying(int channel)"}, {"kind": "function", "line": 348, "name": "I_PrecacheSounds", "signature": "void I_PrecacheSounds(sfxinfo_t *sounds, int num_sounds)"}, {"kind": "function", "line": 356, "name": "I_InitMusic", "signature": "void I_InitMusic(void)"}, {"kind": "function", "line": 360, "name": "I_ShutdownMusic", "signature": "void I_ShutdownMusic(void)"}, {"kind": "function", "line": 365, "name": "I_SetMusicVolume", "signature": "void I_SetMusicVolume(int volume)"}, {"kind": "function", "line": 373, "name": "I_PauseSong", "signature": "void I_PauseSong(void)"}, {"kind": "function", "line": 381, "name": "I_ResumeSong", "signature": "void I_ResumeSong(void)"}, {"kind": "function", "line": 389, "name": "I_RegisterSong", "signature": "void *I_RegisterSong(void *data, int len)"}, {"kind": "function", "line": 401, "name": "I_UnRegisterSong", "signature": "void I_UnRegisterSong(void *handle)"}, {"kind": "function", "line": 409, "name": "I_PlaySong", "signature": "void I_PlaySong(void *handle, boolean looping)"}, {"kind": "function", "line": 417, "name": "I_StopSong", "signature": "void I_StopSong(void)"}, {"kind": "function", "line": 425, "name": "I_MusicIsPlaying", "signature": "boolean I_MusicIsPlaying(void)"}, {"kind": "function", "line": 437, "name": "I_BindSoundVariables", "signature": "void I_BindSoundVariables(void)"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: The not so system specific sound interface. ifndef __I_SOUND__ define __I_SOUND__ include \"doomtype.h\" SoundFX struct.", "id": "progs/doomgeneric/i_sound.h", "kind": "module", "label": "i_sound.h", "language": "h", "sha256": "d99d336be6d33415", "symbol_count": 2, "symbols": [{"kind": "struct", "line": 31, "name": "sfxinfo_struct"}, {"kind": "macro", "line": 21, "name": "__I_SOUND__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Endianess handling, swapping 16bit and 32bit. ifndef __I_SWAP__ define __I_SWAP__ ifdef ORIGCODE include \"SDL_endian.h\" Endianess handling. WAD files are stored little endian. Just use SDL's endianness swapping functions.", "id": "progs/doomgeneric/i_swap.h", "kind": "module", "label": "i_swap.h", "language": "h", "sha256": "9d714e64f58af4c4", "symbol_count": 8, "symbols": [{"kind": "macro", "line": 21, "name": "__I_SWAP__"}, {"kind": "macro", "line": 33, "name": "SHORT"}, {"kind": "macro", "line": 35, "name": "LONG"}, {"kind": "macro", "line": 40, "name": "SYS_LITTLE_ENDIAN"}, {"kind": "macro", "line": 42, "name": "SYS_BIG_ENDIAN"}, {"kind": "macro", "line": 46, "name": "SHORT"}, {"kind": "macro", "line": 48, "name": "LONG"}, {"kind": "macro", "line": 49, "name": "SYS_LITTLE_ENDIAN"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: include include include include ifdef _WIN32 define WIN32_LEAN_AND_MEAN include else include ", "id": "progs/doomgeneric/i_system.c", "kind": "module", "label": "i_system.c", "language": "c", "sha256": "50dadb1629275447", "symbol_count": 20, "symbols": [{"kind": "struct", "line": 64, "name": "atexit_listentry_s"}, {"kind": "function", "line": 72, "name": "I_AtExit", "signature": "void I_AtExit(atexit_func_t func, boolean run_on_error)"}, {"doc": "Tactile feedback function, probably used for the Logitech Cyberman", "kind": "function", "line": 86, "name": "I_Tactile", "signature": "void I_Tactile(int on, int off, int total)"}, {"doc": "Zone memory auto-allocation function that allocates the zone size by trying progressively smaller zone sizes until one is found that works.", "kind": "function", "line": 94, "name": "AutoAllocMemory", "signature": "static byte *AutoAllocMemory(int *size, int default_ram, int min_ram)"}, {"kind": "function", "line": 132, "name": "I_ZoneBase", "signature": "byte *I_ZoneBase (int *size)"}, {"kind": "function", "line": 165, "name": "I_PrintBanner", "signature": "void I_PrintBanner(char *msg)"}, {"kind": "function", "line": 176, "name": "I_PrintDivider", "signature": "void I_PrintDivider(void)"}, {"kind": "function", "line": 188, "name": "I_PrintStartupBanner", "signature": "void I_PrintStartupBanner(char *gamedescription)"}, {"doc": "I_ConsoleStdout Returns true if stdout is a real console, false if it is a file", "kind": "function", "line": 209, "name": "I_ConsoleStdout", "signature": "boolean I_ConsoleStdout(void)"}, {"doc": "I_Quit", "kind": "function", "line": 245, "name": "I_Quit", "signature": "void I_Quit (void)"}, {"doc": "returns non-zero if zenity is available", "kind": "function", "line": 271, "name": "ZenityAvailable", "signature": "static int ZenityAvailable(void)"}, {"doc": "Escape special characters in the given string so that they can be safely enclosed in shell quotes.", "kind": "function", "line": 279, "name": "EscapeShellString", "signature": "static char *EscapeShellString(char *string)"}, {"doc": "Open a native error box with a message using zenity", "kind": "function", "line": 322, "name": "ZenityErrorBox", "signature": "static int ZenityErrorBox(char *message)"}, {"kind": "function", "line": 358, "name": "I_Error", "signature": "void I_Error (char *error, ...)"}, {"kind": "function", "line": 498, "name": "I_GetMemoryValue", "signature": "boolean I_GetMemoryValue(unsigned int offset, void *value, int size)"}, {"kind": "macro", "line": 27, "name": "WIN32_LEAN_AND_MEAN"}, {"kind": "macro", "line": 57, "name": "DEFAULT_RAM"}, {"kind": "macro", "line": 59, "name": "MIN_RAM"}, {"kind": "macro", "line": 268, "name": "ZENITY_BINARY"}, {"kind": "macro", "line": 486, "name": "DOS_MEM_DUMP_SIZE"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: System specific interface stuff. ifndef __I_SYSTEM__ define __I_SYSTEM__ include \"d_ticcmd.h\" include \"d_event.h\"", "id": "progs/doomgeneric/i_system.h", "kind": "module", "label": "i_system.h", "language": "h", "sha256": "a021912f1306a390", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__I_SYSTEM__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Timer functions. include \"i_timer.h\" include \"doomtype.h\" include \"doomgeneric.h\" include #include #include I_GetTime", "id": "progs/doomgeneric/i_timer.c", "kind": "module", "label": "i_timer.c", "language": "c", "sha256": "db826c8488af3431", "symbol_count": 6, "symbols": [{"kind": "function", "line": 35, "name": "I_GetTicks", "signature": "int I_GetTicks(void)"}, {"kind": "function", "line": 41, "name": "I_GetTime", "signature": "int I_GetTime (void)"}, {"doc": "Same as I_GetTime, but returns time in milliseconds", "kind": "function", "line": 60, "name": "I_GetTimeMS", "signature": "int I_GetTimeMS(void)"}, {"doc": "Sleep for a specified number of ms", "kind": "function", "line": 74, "name": "I_Sleep", "signature": "void I_Sleep(int ms)"}, {"kind": "function", "line": 82, "name": "I_WaitVBL", "signature": "void I_WaitVBL(int count)"}, {"kind": "function", "line": 87, "name": "I_InitTimer", "signature": "void I_InitTimer(void)"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: System-specific timer interface ifndef __I_TIMER__ define __I_TIMER__ define TICRATE 35 Called by D_DoomLoop, returns current time in tics.", "id": "progs/doomgeneric/i_timer.h", "kind": "module", "label": "i_timer.h", "language": "h", "sha256": "aff7e10d3ae75797", "symbol_count": 2, "symbols": [{"kind": "macro", "line": 21, "name": "__I_TIMER__"}, {"kind": "macro", "line": 22, "name": "TICRATE"}]}, {"doc": "Emacs style mode select -*- C++ -*- ----------------------------------------------------------------------------- $Id:$ Copyright (C) 1993-1996 by id Software, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. $Log:$ DESCRIPTION: DOOM graphics stuff for X11, UNIX. -----------------------------------------------------------------------------", "id": "progs/doomgeneric/i_video.c", "kind": "module", "label": "i_video.c", "language": "c", "sha256": "996695b7d76bd3e5", "symbol_count": 27, "symbols": [{"kind": "struct", "line": 54, "name": "FB_BitField"}, {"kind": "struct", "line": 60, "name": "FB_ScreenInfo"}, {"kind": "struct", "line": 80, "name": "color"}, {"kind": "function", "line": 130, "name": "cmap_to_rgb565", "signature": "void cmap_to_rgb565(uint16_t * out, uint8_t * in, int in_pixels)"}, {"kind": "function", "line": 151, "name": "cmap_to_fb", "signature": "void cmap_to_fb(uint8_t * out, uint8_t * in, int in_pixels)"}, {"kind": "function", "line": 178, "name": "I_InitGraphics", "signature": "void I_InitGraphics (void)"}, {"kind": "function", "line": 231, "name": "I_ShutdownGraphics", "signature": "void I_ShutdownGraphics (void)"}, {"kind": "function", "line": 236, "name": "I_StartFrame", "signature": "void I_StartFrame (void)"}, {"kind": "function", "line": 241, "name": "I_StartTic", "signature": "void I_StartTic (void)"}, {"kind": "function", "line": 246, "name": "I_UpdateNoBlit", "signature": "void I_UpdateNoBlit (void)"}, {"doc": "I_FinishUpdate", "kind": "function", "line": 254, "name": "I_FinishUpdate", "signature": "void I_FinishUpdate (void)"}, {"doc": "I_ReadScreen", "kind": "function", "line": 302, "name": "I_ReadScreen", "signature": "void I_ReadScreen (byte* scr)"}, {"doc": "I_SetPalette define GFX_RGB565(r, g, b)\t\t\t((((r & 0xF8) >> 3) << 11) | (((g & 0xFC) >> 2) << 5) | ((b & 0xF8) >> 3)) define GFX_RGB565_R(color)\t\t\t((0xF800 & color) >> 11) define GFX_RGB565_G(color)\t\t\t((0x07E0 & color) >> 5) define GFX_RGB565_B(color)\t\t\t(0x001F & color)", "kind": "function", "line": 314, "name": "I_SetPalette", "signature": "void I_SetPalette (byte* palette)"}, {"doc": "Given an RGB value, find the closest matching palette index.", "kind": "function", "line": 332, "name": "I_GetPaletteIndex", "signature": "int I_GetPaletteIndex (int r, int g, int b)"}, {"kind": "function", "line": 368, "name": "I_BeginRead", "signature": "void I_BeginRead (void)"}, {"kind": "function", "line": 372, "name": "I_EndRead", "signature": "void I_EndRead (void)"}, {"kind": "function", "line": 376, "name": "I_SetWindowTitle", "signature": "void I_SetWindowTitle (char *title)"}, {"kind": "function", "line": 381, "name": "I_GraphicsCheckCommandLine", "signature": "void I_GraphicsCheckCommandLine (void)"}, {"kind": "function", "line": 385, "name": "I_SetGrabMouseCallback", "signature": "void I_SetGrabMouseCallback (grabmouse_callback_t func)"}, {"kind": "function", "line": 389, "name": "I_EnableLoadingDisk", "signature": "void I_EnableLoadingDisk(void)"}, {"kind": "function", "line": 393, "name": "I_BindVideoVariables", "signature": "void I_BindVideoVariables (void)"}, {"kind": "function", "line": 397, "name": "I_DisplayFPSDots", "signature": "void I_DisplayFPSDots (boolean dots_on)"}, {"kind": "function", "line": 401, "name": "I_CheckIsScreensaver", "signature": "void I_CheckIsScreensaver (void)"}, {"kind": "macro", "line": 310, "name": "GFX_RGB565"}, {"kind": "macro", "line": 311, "name": "GFX_RGB565_R"}, {"kind": "macro", "line": 312, "name": "GFX_RGB565_G"}, {"kind": "macro", "line": 313, "name": "GFX_RGB565_B"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: System specific interface stuff. ifndef __I_VIDEO__ define __I_VIDEO__ include \"doomtype.h\" Screen width and height. define SCREENWIDTH 320 define SCREENHEIGHT 200 Screen width used for \"squash\" scale functions", "id": "progs/doomgeneric/i_video.h", "kind": "module", "label": "i_video.h", "language": "h", "sha256": "e11a9289b84ca17f", "symbol_count": 6, "symbols": [{"kind": "macro", "line": 21, "name": "__I_VIDEO__"}, {"kind": "macro", "line": 26, "name": "SCREENWIDTH"}, {"kind": "macro", "line": 28, "name": "SCREENHEIGHT"}, {"kind": "macro", "line": 31, "name": "SCREENWIDTH_4_3"}, {"kind": "macro", "line": 35, "name": "SCREENHEIGHT_4_3"}, {"kind": "macro", "line": 37, "name": "MAX_MOUSE_BUTTONS"}]}, {"id": "progs/doomgeneric/icon.c", "kind": "module", "label": "icon.c", "language": "c", "sha256": "a2aacb813259f73d", "symbol_count": 0, "symbols": []}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Thing frame/state LUT, generated by multigen utilitiy. This one is the original DOOM version, preserved. include include Data. include \"sounds.h\" include \"m_fixed.h\" include \"info.h\" include \"p_mobj.h\"", "id": "progs/doomgeneric/info.c", "kind": "module", "label": "info.c", "language": "c", "sha256": "e2be9ff79428bd66", "symbol_count": 0, "symbols": []}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Thing frame/state LUT, generated by multigen utilitiy. This one is the original DOOM version, preserved. ifndef __INFO__ define __INFO__ Needed for action function pointer handling. include \"d_think.h\"", "id": "progs/doomgeneric/info.h", "kind": "module", "label": "info.h", "language": "h", "sha256": "e14bb0b58e162837", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 22, "name": "__INFO__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: include include include include include \"doomtype.h\" include \"i_system.h\" include \"m_misc.h\" include \"m_argv.h\" // haleyjd 20110212: warning fix", "id": "progs/doomgeneric/m_argv.c", "kind": "module", "label": "m_argv.c", "language": "c", "sha256": "7a430eb8ad1d7557", "symbol_count": 7, "symbols": [{"doc": "M_CheckParm Checks for the given parameter in the program's command line arguments. Returns the argument number (1 to argc-1) or 0 if not present", "kind": "function", "line": 42, "name": "M_CheckParmWithArgs", "signature": "int M_CheckParmWithArgs(char *check, int num_args)"}, {"doc": "M_ParmExists Returns true if the given parameter exists in the program's command line arguments, false if not.", "kind": "function", "line": 62, "name": "M_ParmExists", "signature": "boolean M_ParmExists(char *check)"}, {"kind": "function", "line": 67, "name": "M_CheckParm", "signature": "int M_CheckParm(char *check)"}, {"doc": "define MAXARGVS 100", "kind": "function", "line": 74, "name": "LoadResponseFile", "signature": "static void LoadResponseFile(int argv_index)"}, {"doc": "Find a Response File", "kind": "function", "line": 234, "name": "M_FindResponseFile", "signature": "void M_FindResponseFile(void)"}, {"doc": "Return the name of the executable used to start the program:", "kind": "function", "line": 249, "name": "M_GetExecutableName", "signature": "char *M_GetExecutableName(void)"}, {"kind": "macro", "line": 72, "name": "MAXARGVS"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Nil. ifndef __M_ARGV__ define __M_ARGV__ include \"doomtype.h\" MISC", "id": "progs/doomgeneric/m_argv.h", "kind": "module", "label": "m_argv.h", "language": "h", "sha256": "4ef0191e13eea9da", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__M_ARGV__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Main loop menu stuff. Random number LUT. Default Config File. PCX Screenshots. include \"m_bbox.h\"", "id": "progs/doomgeneric/m_bbox.c", "kind": "module", "label": "m_bbox.c", "language": "c", "sha256": "879c4cd6b21c7f9a", "symbol_count": 2, "symbols": [{"doc": "include \"m_bbox.h\"", "kind": "function", "line": 25, "name": "M_ClearBox", "signature": "void M_ClearBox (fixed_t *box)"}, {"kind": "function", "line": 34, "name": "M_AddToBox", "signature": "void\nM_AddToBox\n( fixed_t*\tbox,\n fixed_t\tx,\n fixed_t\ty )"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Nil. ifndef __M_BBOX__ define __M_BBOX__ include include \"m_fixed.h\" Bounding box coordinate storage.", "id": "progs/doomgeneric/m_bbox.h", "kind": "module", "label": "m_bbox.h", "language": "h", "sha256": "db33e9edbd0a29a2", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__M_BBOX__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Cheat sequence checking. include include \"doomtype.h\" include \"m_cheat.h\" CHEAT SEQUENCE PACKAGE", "id": "progs/doomgeneric/m_cheat.c", "kind": "module", "label": "m_cheat.c", "language": "c", "sha256": "9d0c388568c0a776", "symbol_count": 2, "symbols": [{"doc": "Called in st_stuff module, which handles the input. Returns a 1 if the cheat was successful, 0 if failed.", "kind": "function", "line": 34, "name": "cht_CheckCheat", "signature": "int\ncht_CheckCheat\n( cheatseq_t*\tcht,\n char\t\tkey )"}, {"kind": "function", "line": 80, "name": "cht_GetParam", "signature": "void\ncht_GetParam\n( cheatseq_t*\tcht,\n char*\t\tbuffer )"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Cheat code checking. ifndef __M_CHEAT__ define __M_CHEAT__ CHEAT SEQUENCE PACKAGE declaring a cheat define CHEAT(value, parameters) \\", "id": "progs/doomgeneric/m_cheat.h", "kind": "module", "label": "m_cheat.h", "language": "h", "sha256": "0a988d0e60a78793", "symbol_count": 4, "symbols": [{"kind": "macro", "line": 21, "name": "__M_CHEAT__"}, {"kind": "macro", "line": 28, "name": "CHEAT"}, {"kind": "macro", "line": 31, "name": "MAX_CHEAT_LEN"}, {"kind": "macro", "line": 33, "name": "MAX_CHEAT_PARAMS"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 1993-2008 Raven Software Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Configuration file interface. include include include include include include \"config.h\" include \"doomtype.h\" include \"doomkeys.h\"", "id": "progs/doomgeneric/m_config.c", "kind": "module", "label": "m_config.c", "language": "c", "sha256": "ba9214b7d9f16ee3", "symbol_count": 24, "symbols": [{"doc": "Search a collection for a variable", "kind": "function", "line": 1562, "name": "SearchCollection", "signature": "static default_t *SearchCollection(default_collection_t *collection, char *name)"}, {"kind": "function", "line": 1607, "name": "SaveDefaultCollection", "signature": "static void SaveDefaultCollection(default_collection_t *collection)"}, {"doc": "Parses integer values in the configuration file", "kind": "function", "line": 1715, "name": "ParseIntParameter", "signature": "static int ParseIntParameter(char *strparm)"}, {"kind": "function", "line": 1727, "name": "SetVariable", "signature": "static void SetVariable(default_t *def, char *value)"}, {"kind": "function", "line": 1770, "name": "LoadDefaultCollection", "signature": "static void LoadDefaultCollection(default_collection_t *collection)"}, {"doc": "Set the default filenames to use for configuration files.", "kind": "function", "line": 1835, "name": "M_SetConfigFilenames", "signature": "void M_SetConfigFilenames(char *main_config, char *extra_config)"}, {"doc": "M_SaveDefaults", "kind": "function", "line": 1845, "name": "M_SaveDefaults", "signature": "void M_SaveDefaults (void)"}, {"doc": "Save defaults to alternate filenames", "kind": "function", "line": 1855, "name": "M_SaveDefaultsAlternate", "signature": "void M_SaveDefaultsAlternate(char *main, char *extra)"}, {"doc": "M_LoadDefaults", "kind": "function", "line": 1880, "name": "M_LoadDefaults", "signature": "void M_LoadDefaults (void)"}, {"doc": "Get a configuration file variable by its name", "kind": "function", "line": 1936, "name": "GetDefaultForName", "signature": "static default_t *GetDefaultForName(char *name)"}, {"doc": "Bind a variable to a given configuration file variable, by name.", "kind": "function", "line": 1963, "name": "M_BindVariable", "signature": "void M_BindVariable(char *name, void *location)"}, {"doc": "Set the value of a particular variable; an API function for other parts of the program to assign values to config variables by name.", "kind": "function", "line": 1976, "name": "M_SetVariable", "signature": "boolean M_SetVariable(char *name, char *value)"}, {"doc": "Get the value of a variable.", "kind": "function", "line": 1994, "name": "M_GetIntVariable", "signature": "int M_GetIntVariable(char *name)"}, {"kind": "function", "line": 2009, "name": "M_GetStrVariable", "signature": "const char *M_GetStrVariable(char *name)"}, {"kind": "function", "line": 2024, "name": "M_GetFloatVariable", "signature": "float M_GetFloatVariable(char *name)"}, {"doc": "Get the path to the default configuration dir to use, if NULL is passed to M_SetConfigDir.", "kind": "function", "line": 2042, "name": "GetDefaultConfigDir", "signature": "static char *GetDefaultConfigDir(void)"}, {"doc": "SetConfigDir: Sets the location of the configuration directory, where configuration files are stored - default.cfg, chocolate-doom.cfg, savegames, etc.", "kind": "function", "line": 2058, "name": "M_SetConfigDir", "signature": "void M_SetConfigDir(char *dir)"}, {"doc": "Calculate the path to the directory to use to store save games. Creates the directory as necessary.", "kind": "function", "line": 2086, "name": "M_GetSaveGameDir", "signature": "char *M_GetSaveGameDir(char *iwadname)"}, {"kind": "macro", "line": 94, "name": "CONFIG_VARIABLE_GENERIC"}, {"kind": "macro", "line": 97, "name": "CONFIG_VARIABLE_KEY"}, {"kind": "macro", "line": 100, "name": "CONFIG_VARIABLE_INT"}, {"kind": "macro", "line": 102, "name": "CONFIG_VARIABLE_INT_HEX"}, {"kind": "macro", "line": 104, "name": "CONFIG_VARIABLE_FLOAT"}, {"kind": "macro", "line": 106, "name": "CONFIG_VARIABLE_STRING"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Configuration file interface. ifndef __M_CONFIG__ define __M_CONFIG__ include \"doomtype.h\"", "id": "progs/doomgeneric/m_config.h", "kind": "module", "label": "m_config.h", "language": "h", "sha256": "0a53b2a73c535f9d", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__M_CONFIG__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 1993-2008 Raven Software Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. include include \"doomtype.h\" include \"doomkeys.h\" include \"m_config.h\" include \"m_misc.h\" Keyboard controls", "id": "progs/doomgeneric/m_controls.c", "kind": "module", "label": "m_controls.c", "language": "c", "sha256": "f64170855d5d7927", "symbol_count": 9, "symbols": [{"doc": "Bind all of the common controls used by Doom and all other games.", "kind": "function", "line": 203, "name": "M_BindBaseControls", "signature": "void M_BindBaseControls(void)"}, {"kind": "function", "line": 240, "name": "M_BindHereticControls", "signature": "void M_BindHereticControls(void)"}, {"kind": "function", "line": 255, "name": "M_BindHexenControls", "signature": "void M_BindHexenControls(void)"}, {"kind": "function", "line": 271, "name": "M_BindStrifeControls", "signature": "void M_BindStrifeControls(void)"}, {"kind": "function", "line": 306, "name": "M_BindWeaponControls", "signature": "void M_BindWeaponControls(void)"}, {"kind": "function", "line": 327, "name": "M_BindMapControls", "signature": "void M_BindMapControls(void)"}, {"kind": "function", "line": 343, "name": "M_BindMenuControls", "signature": "void M_BindMenuControls(void)"}, {"kind": "function", "line": 374, "name": "M_BindChatControls", "signature": "void M_BindChatControls(unsigned int num_players)"}, {"doc": "Apply custom patches to the default values depending on the platform we are running on.", "kind": "function", "line": 393, "name": "M_ApplyPlatformDefaults", "signature": "void M_ApplyPlatformDefaults(void)"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 1993-2008 Raven Software Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ifndef __M_CONTROLS_H__ define __M_CONTROLS_H__", "id": "progs/doomgeneric/m_controls.h", "kind": "module", "label": "m_controls.h", "language": "h", "sha256": "22f8f193cc584a78", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 18, "name": "__M_CONTROLS_H__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Fixed point implementation. include \"stdlib.h\" include \"doomtype.h\" include \"i_system.h\" include \"m_fixed.h\"", "id": "progs/doomgeneric/m_fixed.c", "kind": "module", "label": "m_fixed.c", "language": "c", "sha256": "b4f2f4db6001da11", "symbol_count": 2, "symbols": [{"doc": "Fixme. __USE_C_FIXED__ or something.", "kind": "function", "line": 32, "name": "FixedMul", "signature": "fixed_t\nFixedMul\n( fixed_t\ta,\n fixed_t\tb )"}, {"doc": "FixedDiv, C version.", "kind": "function", "line": 46, "name": "FixedDiv", "signature": "fixed_t FixedDiv(fixed_t a, fixed_t b)"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Fixed point arithemtics, implementation. ifndef __M_FIXED__ define __M_FIXED__ Fixed point, 32bit as 16.16. define FRACBITS\t\t16 define FRACUNIT\t\t(1< include include \"doomdef.h\" include \"doomkeys.h\" include \"dstrings.h\" include \"d_main.h\" include \"deh_main.h\"", "id": "progs/doomgeneric/m_menu.c", "kind": "module", "label": "m_menu.c", "language": "c", "sha256": "1ce7a6f57bda5a8b", "symbol_count": 60, "symbols": [{"kind": "struct", "line": 151, "name": "menu_s"}, {"doc": "M_ReadSaveStrings read the strings from the savegame files", "kind": "function", "line": 503, "name": "M_ReadSaveStrings", "signature": "void M_ReadSaveStrings(void)"}, {"doc": "M_LoadGame & Cie.", "kind": "function", "line": 530, "name": "M_DrawLoad", "signature": "void M_DrawLoad(void)"}, {"doc": "Draw border for the savegame description", "kind": "function", "line": 549, "name": "M_DrawSaveLoadBorder", "signature": "void M_DrawSaveLoadBorder(int x,int y)"}, {"doc": "User wants to load this game", "kind": "function", "line": 572, "name": "M_LoadSelect", "signature": "void M_LoadSelect(int choice)"}, {"doc": "Selected from DOOM menu", "kind": "function", "line": 585, "name": "M_LoadGame", "signature": "void M_LoadGame (int choice)"}, {"doc": "M_SaveGame & Cie.", "kind": "function", "line": 601, "name": "M_DrawSave", "signature": "void M_DrawSave(void)"}, {"doc": "M_Responder calls this when user is finished", "kind": "function", "line": 622, "name": "M_DoSave", "signature": "void M_DoSave(int slot)"}, {"doc": "User wants to save. Start string input for M_Responder", "kind": "function", "line": 635, "name": "M_SaveSelect", "signature": "void M_SaveSelect(int choice)"}, {"doc": "Selected from DOOM menu", "kind": "function", "line": 650, "name": "M_SaveGame", "signature": "void M_SaveGame (int choice)"}, {"kind": "function", "line": 671, "name": "M_QuickSaveResponse", "signature": "void M_QuickSaveResponse(int key)"}, {"kind": "function", "line": 680, "name": "M_QuickSave", "signature": "void M_QuickSave(void)"}, {"doc": "M_QuickLoad", "kind": "function", "line": 709, "name": "M_QuickLoadResponse", "signature": "void M_QuickLoadResponse(int key)"}, {"kind": "function", "line": 717, "name": "M_QuickLoad", "signature": "void M_QuickLoad(void)"}, {"doc": "Read This Menus Had a \"quick hack to fix romero bug\"", "kind": "function", "line": 743, "name": "M_DrawReadThis1", "signature": "void M_DrawReadThis1(void)"}, {"doc": "Read This Menus - optional second page.", "kind": "function", "line": 820, "name": "M_DrawReadThis2", "signature": "void M_DrawReadThis2(void)"}, {"doc": "Change Sfx & Music volumes", "kind": "function", "line": 834, "name": "M_DrawSound", "signature": "void M_DrawSound(void)"}, {"kind": "function", "line": 844, "name": "M_Sound", "signature": "void M_Sound(int choice)"}, {"kind": "function", "line": 849, "name": "M_SfxVol", "signature": "void M_SfxVol(int choice)"}, {"kind": "function", "line": 866, "name": "M_MusicVol", "signature": "void M_MusicVol(int choice)"}, {"doc": "M_DrawMainMenu", "kind": "function", "line": 890, "name": "M_DrawMainMenu", "signature": "void M_DrawMainMenu(void)"}, {"doc": "M_NewGame", "kind": "function", "line": 902, "name": "M_DrawNewGame", "signature": "void M_DrawNewGame(void)"}, {"kind": "function", "line": 907, "name": "M_NewGame", "signature": "void M_NewGame(int choice)"}, {"kind": "function", "line": 929, "name": "M_DrawEpisode", "signature": "void M_DrawEpisode(void)"}, {"kind": "function", "line": 934, "name": "M_VerifyNightmare", "signature": "void M_VerifyNightmare(int key)"}, {"kind": "function", "line": 943, "name": "M_ChooseSkill", "signature": "void M_ChooseSkill(int choice)"}, {"kind": "function", "line": 955, "name": "M_Episode", "signature": "void M_Episode(int choice)"}, {"kind": "function", "line": 986, "name": "M_DrawOptions", "signature": "void M_DrawOptions(void)"}, {"kind": "function", "line": 1006, "name": "M_Options", "signature": "void M_Options(int choice)"}, {"doc": "Toggle messages on/off", "kind": "function", "line": 1017, "name": "M_ChangeMessages", "signature": "void M_ChangeMessages(int choice)"}, {"doc": "M_EndGame", "kind": "function", "line": 1035, "name": "M_EndGameResponse", "signature": "void M_EndGameResponse(int key)"}, {"kind": "function", "line": 1044, "name": "M_EndGame", "signature": "void M_EndGame(int choice)"}, {"doc": "M_ReadThis", "kind": "function", "line": 1069, "name": "M_ReadThis", "signature": "void M_ReadThis(int choice)"}, {"kind": "function", "line": 1074, "name": "M_ReadThis2", "signature": "void M_ReadThis2(int choice)"}, {"kind": "function", "line": 1092, "name": "M_FinishReadThis", "signature": "void M_FinishReadThis(int choice)"}, {"kind": "function", "line": 1128, "name": "M_QuitResponse", "signature": "void M_QuitResponse(int key)"}, {"kind": "function", "line": 1145, "name": "M_SelectEndMessage", "signature": "static char *M_SelectEndMessage(void)"}, {"kind": "function", "line": 1166, "name": "M_QuitDOOM", "signature": "void M_QuitDOOM(int choice)"}, {"kind": "function", "line": 1175, "name": "M_ChangeSensitivity", "signature": "void M_ChangeSensitivity(int choice)"}, {"kind": "function", "line": 1193, "name": "M_ChangeDetail", "signature": "void M_ChangeDetail(int choice)"}, {"kind": "function", "line": 1209, "name": "M_SizeDisplay", "signature": "void M_SizeDisplay(int choice)"}, {"doc": "Menu Functions", "kind": "function", "line": 1243, "name": "M_DrawThermo", "signature": "void\nM_DrawThermo\n( int\tx,\n int\ty,\n int\tthermWidth,\n int\tthermDot )"}, {"kind": "function", "line": 1266, "name": "M_DrawEmptyCell", "signature": "void\nM_DrawEmptyCell\n( menu_t*\tmenu,\n int\t\titem )"}, {"kind": "function", "line": 1277, "name": "M_DrawSelCell", "signature": "void\nM_DrawSelCell\n( menu_t*\tmenu,\n int\t\titem )"}, {"kind": "function", "line": 1286, "name": "M_StartMessage", "signature": "void\nM_StartMessage\n( char*\t\tstring,\n void*\t\troutine,\n boolean\tinput )"}, {"kind": "function", "line": 1302, "name": "M_StopMessage", "signature": "void M_StopMessage(void)"}, {"doc": "Find string width from hu_font chars", "kind": "function", "line": 1315, "name": "M_StringWidth", "signature": "int M_StringWidth(char* string)"}, {"doc": "Find string height from hu_font chars", "kind": "function", "line": 1338, "name": "M_StringHeight", "signature": "int M_StringHeight(char* string)"}, {"doc": "Write a string using the hu_font", "kind": "function", "line": 1356, "name": "M_WriteText", "signature": "void\nM_WriteText\n( int\t\tx,\n int\t\ty,\n char*\t\tstring)"}, {"doc": "These keys evaluate to a \"null\" key in Vanilla Doom that allows weird jumping in the menus. Preserve this behavior for accuracy.", "kind": "function", "line": 1402, "name": "IsNullKey", "signature": "static boolean IsNullKey(int key)"}, {"doc": "M_Responder", "kind": "function", "line": 1416, "name": "M_Responder", "signature": "boolean M_Responder (event_t* ev)"}, {"doc": "M_StartControlPanel", "kind": "function", "line": 1899, "name": "M_StartControlPanel", "signature": "void M_StartControlPanel (void)"}, {"doc": "if 0", "kind": "function", "line": 1913, "name": "M_DrawOPLDev", "signature": "static void M_DrawOPLDev(void)"}, {"doc": "M_Drawer Called after the view has been rendered, but before it has been blitted.", "kind": "function", "line": 1951, "name": "M_Drawer", "signature": "void M_Drawer (void)"}, {"doc": "M_ClearMenus", "kind": "function", "line": 2041, "name": "M_ClearMenus", "signature": "void M_ClearMenus (void)"}, {"doc": "M_SetupNextMenu", "kind": "function", "line": 2054, "name": "M_SetupNextMenu", "signature": "void M_SetupNextMenu(menu_t *menudef)"}, {"doc": "M_Ticker", "kind": "function", "line": 2064, "name": "M_Ticker", "signature": "void M_Ticker (void)"}, {"doc": "M_Init", "kind": "function", "line": 2077, "name": "M_Init", "signature": "void M_Init (void)"}, {"kind": "macro", "line": 119, "name": "SKULLXOFF"}, {"kind": "macro", "line": 121, "name": "LINEHEIGHT"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Menu widget stuff, episode selection and such. ifndef __M_MENU__ define __M_MENU__ include \"d_event.h\" MENUS Called by main loop,", "id": "progs/doomgeneric/m_menu.h", "kind": "module", "label": "m_menu.h", "language": "h", "sha256": "9e3c8165d800d2b8", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__M_MENU__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 1993-2008 Raven Software Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Miscellaneous. include include include include include ifdef _WIN32 define WIN32_LEAN_AND_MEAN include include ", "id": "progs/doomgeneric/m_misc.c", "kind": "module", "label": "m_misc.c", "language": "c", "sha256": "191d386277cff149", "symbol_count": 22, "symbols": [{"doc": "Create a directory", "kind": "function", "line": 54, "name": "M_MakeDirectory", "signature": "void M_MakeDirectory(char *path)"}, {"doc": "Check if a file exists", "kind": "function", "line": 65, "name": "M_FileExists", "signature": "boolean M_FileExists(char *filename)"}, {"doc": "Determine the length of an open file.", "kind": "function", "line": 88, "name": "M_FileLength", "signature": "long M_FileLength(FILE *handle)"}, {"doc": "M_WriteFile", "kind": "function", "line": 110, "name": "M_WriteFile", "signature": "boolean M_WriteFile(char *name, void *source, int length)"}, {"doc": "M_ReadFile", "kind": "function", "line": 134, "name": "M_ReadFile", "signature": "int M_ReadFile(char *name, byte **buffer)"}, {"doc": "Returns the path to a temporary file of the given name, stored inside the system temporary directory. The returned value must be freed with Z_Free after use.", "kind": "function", "line": 165, "name": "M_TempFile", "signature": "char *M_TempFile(char *s)"}, {"kind": "function", "line": 188, "name": "M_StrToInt", "signature": "boolean M_StrToInt(const char *str, int *result)"}, {"kind": "function", "line": 196, "name": "M_ExtractFileBase", "signature": "void M_ExtractFileBase(char *path, char *dest)"}, {"doc": "-------------------------------------------------------------------------- PROC M_ForceUppercase Change string to uppercase. ---------------------------------------------------------------------------", "kind": "function", "line": 241, "name": "M_ForceUppercase", "signature": "void M_ForceUppercase(char *text)"}, {"doc": "M_StrCaseStr Case-insensitive version of strstr()", "kind": "function", "line": 257, "name": "M_StrCaseStr", "signature": "char *M_StrCaseStr(char *haystack, char *needle)"}, {"doc": "Safe version of strdup() that checks the string was successfully allocated.", "kind": "function", "line": 290, "name": "M_StringDuplicate", "signature": "char *M_StringDuplicate(const char *orig)"}, {"doc": "String replace function.", "kind": "function", "line": 309, "name": "M_StringReplace", "signature": "char *M_StringReplace(const char *haystack, const char *needle,\n const char ..."}, {"doc": "Safe string copy function that works like OpenBSD's strlcpy(). Returns true if the string was not truncated.", "kind": "function", "line": 371, "name": "M_StringCopy", "signature": "boolean M_StringCopy(char *dest, const char *src, size_t dest_size)"}, {"doc": "Safe string concat function that works like OpenBSD's strlcat(). Returns true if string not truncated.", "kind": "function", "line": 392, "name": "M_StringConcat", "signature": "boolean M_StringConcat(char *dest, const char *src, size_t dest_size)"}, {"doc": "Returns true if 's' begins with the specified prefix.", "kind": "function", "line": 407, "name": "M_StringStartsWith", "signature": "boolean M_StringStartsWith(const char *s, const char *prefix)"}, {"doc": "Returns true if 's' ends with the specified suffix.", "kind": "function", "line": 415, "name": "M_StringEndsWith", "signature": "boolean M_StringEndsWith(const char *s, const char *suffix)"}, {"doc": "Return a newly-malloced string with all the strings given as arguments concatenated together.", "kind": "function", "line": 424, "name": "M_StringJoin", "signature": "char *M_StringJoin(const char *s, ...)"}, {"doc": "Safe, portable vsnprintf().", "kind": "function", "line": 481, "name": "M_vsnprintf", "signature": "int M_vsnprintf(char *buf, size_t buf_len, const char *s, va_list args)"}, {"doc": "Safe, portable snprintf().", "kind": "function", "line": 507, "name": "M_snprintf", "signature": "int M_snprintf(char *buf, size_t buf_len, const char *s, ...)"}, {"doc": "ifdef _WIN32", "kind": "function", "line": 518, "name": "M_OEMToUTF8", "signature": "char *M_OEMToUTF8(const char *oem)"}, {"kind": "macro", "line": 28, "name": "WIN32_LEAN_AND_MEAN"}, {"kind": "macro", "line": 476, "name": "vsnprintf"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Miscellaneous. ifndef __M_MISC__ define __M_MISC__ include include include \"doomtype.h\"", "id": "progs/doomgeneric/m_misc.h", "kind": "module", "label": "m_misc.h", "language": "h", "sha256": "4677efcb264cd30e", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__M_MISC__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Random number LUT. M_Random Returns a 0-255 number", "id": "progs/doomgeneric/m_random.c", "kind": "module", "label": "m_random.c", "language": "c", "sha256": "ba1abbfc0fdd9741", "symbol_count": 3, "symbols": [{"doc": "Which one is deterministic?", "kind": "function", "line": 50, "name": "P_Random", "signature": "int P_Random (void)"}, {"kind": "function", "line": 55, "name": "M_Random", "signature": "int M_Random (void)"}, {"kind": "function", "line": 61, "name": "M_ClearRandom", "signature": "void M_ClearRandom (void)"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: ifndef __M_RANDOM__ define __M_RANDOM__ include \"doomtype.h\" Returns a number from 0 to 255, from a lookup table.", "id": "progs/doomgeneric/m_random.h", "kind": "module", "label": "m_random.h", "language": "h", "sha256": "a9939585aebe4801", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__M_RANDOM__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. Emulates the IO functions in C stdio.h reading and writing to memory. include include include include \"memio.h\" include \"z_zone.h\"", "id": "progs/doomgeneric/memio.c", "kind": "module", "label": "memio.c", "language": "c", "sha256": "c636b1fe0e71a6d2", "symbol_count": 9, "symbols": [{"kind": "struct", "line": 32, "name": "_MEMFILE"}, {"doc": "Open a memory area for reading", "kind": "function", "line": 41, "name": "mem_fopen_read", "signature": "MEMFILE *mem_fopen_read(void *buf, size_t buflen)"}, {"doc": "Read bytes", "kind": "function", "line": 57, "name": "mem_fread", "signature": "size_t mem_fread(void *buf, size_t size, size_t nmemb, MEMFILE *stream)"}, {"doc": "Open a memory area for writing", "kind": "function", "line": 89, "name": "mem_fopen_write", "signature": "MEMFILE *mem_fopen_write(void)"}, {"doc": "Write bytes to stream", "kind": "function", "line": 106, "name": "mem_fwrite", "signature": "size_t mem_fwrite(const void *ptr, size_t size, size_t nmemb, MEMFILE *stream)"}, {"kind": "function", "line": 142, "name": "mem_get_buf", "signature": "void mem_get_buf(MEMFILE *stream, void **buf, size_t *buflen)"}, {"kind": "function", "line": 148, "name": "mem_fclose", "signature": "void mem_fclose(MEMFILE *stream)"}, {"kind": "function", "line": 158, "name": "mem_ftell", "signature": "long mem_ftell(MEMFILE *stream)"}, {"kind": "function", "line": 163, "name": "mem_fseek", "signature": "int mem_fseek(MEMFILE *stream, signed long position, mem_rel_t whence)"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. ifndef MEMIO_H define MEMIO_H", "id": "progs/doomgeneric/memio.h", "kind": "module", "label": "memio.h", "language": "h", "sha256": "b8888276fc15ec65", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 17, "name": "MEMIO_H"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. Network client code ifndef NET_CLIENT_H define NET_CLIENT_H include \"doomtype.h\" include \"d_ticcmd.h\" include \"sha1.h\" include \"net_defs.h\"", "id": "progs/doomgeneric/net_client.h", "kind": "module", "label": "net_client.h", "language": "h", "sha256": "27e20191f1ccb74b", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 18, "name": "NET_CLIENT_H"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. Dedicated server code. ifndef NET_DEDICATED_H define NET_DEDICATED_H", "id": "progs/doomgeneric/net_dedicated.h", "kind": "module", "label": "net_dedicated.h", "language": "h", "sha256": "5a558a5c1d54f3fb", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 19, "name": "NET_DEDICATED_H"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Definitions for use in networking code. ifndef NET_DEFS_H define NET_DEFS_H include include \"doomtype.h\" include \"d_ticcmd.h\" include \"sha1.h\" Absolute maximum number of \"nodes\" in the game. This is different to NET_MAXPLAYERS, as there may be observers that are not participating (eg. left/right monitors)", "id": "progs/doomgeneric/net_defs.h", "kind": "module", "label": "net_defs.h", "language": "h", "sha256": "cb25e150a43ad214", "symbol_count": 18, "symbols": [{"kind": "struct", "line": 52, "name": "_net_packet_s"}, {"kind": "struct", "line": 60, "name": "_net_module_s"}, {"kind": "struct", "line": 95, "name": "_net_addr_s"}, {"kind": "macro", "line": 19, "name": "NET_DEFS_H"}, {"kind": "macro", "line": 30, "name": "MAXNETNODES"}, {"kind": "macro", "line": 36, "name": "NET_MAXPLAYERS"}, {"kind": "macro", "line": 40, "name": "MAXPLAYERNAME"}, {"kind": "macro", "line": 44, "name": "BACKUPTICS"}, {"kind": "macro", "line": 102, "name": "NET_MAGIC_NUMBER"}, {"kind": "macro", "line": 106, "name": "NET_RELIABLE_PACKET"}, {"kind": "macro", "line": 192, "name": "NET_TICDIFF_FORWARD"}, {"kind": "macro", "line": 194, "name": "NET_TICDIFF_SIDE"}, {"kind": "macro", "line": 195, "name": "NET_TICDIFF_TURN"}, {"kind": "macro", "line": 196, "name": "NET_TICDIFF_BUTTONS"}, {"kind": "macro", "line": 197, "name": "NET_TICDIFF_CONSISTANCY"}, {"kind": "macro", "line": 198, "name": "NET_TICDIFF_CHATCHAR"}, {"kind": "macro", "line": 199, "name": "NET_TICDIFF_RAVEN"}, {"kind": "macro", "line": 200, "name": "NET_TICDIFF_STRIFE"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. Graphical stuff related to the networking code: * The client waiting screen when we are waiting for the server to start the game. ifndef NET_GUI_H define NET_GUI_H include \"doomtype.h\"", "id": "progs/doomgeneric/net_gui.h", "kind": "module", "label": "net_gui.h", "language": "h", "sha256": "ffc4b6f9ea539db8", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 22, "name": "NET_GUI_H"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Network packet manipulation (net_packet_t) ifndef NET_IO_H define NET_IO_H include \"net_defs.h\"", "id": "progs/doomgeneric/net_io.h", "kind": "module", "label": "net_io.h", "language": "h", "sha256": "a6d0bf5178dc2aeb", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 19, "name": "NET_IO_H"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Loopback network module for server compiled into the client ifndef NET_LOOP_H define NET_LOOP_H include \"net_defs.h\"", "id": "progs/doomgeneric/net_loop.h", "kind": "module", "label": "net_loop.h", "language": "h", "sha256": "cd4d1e5e3641f016", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 19, "name": "NET_LOOP_H"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Definitions for use in networking code. ifndef NET_PACKET_H define NET_PACKET_H include \"net_defs.h\"", "id": "progs/doomgeneric/net_packet.h", "kind": "module", "label": "net_packet.h", "language": "h", "sha256": "7d99b7501afc4689", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 19, "name": "NET_PACKET_H"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Querying servers to find their current status. ifndef NET_QUERY_H define NET_QUERY_H include \"net_defs.h\"", "id": "progs/doomgeneric/net_query.h", "kind": "module", "label": "net_query.h", "language": "h", "sha256": "d3a25a19cd32385c", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 19, "name": "NET_QUERY_H"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Networking module which uses SDL_net ifndef NET_SDL_H define NET_SDL_H include \"net_defs.h\"", "id": "progs/doomgeneric/net_sdl.h", "kind": "module", "label": "net_sdl.h", "language": "h", "sha256": "b62e2209e55a51ce", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 19, "name": "NET_SDL_H"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. Network server code ifndef NET_SERVER_H define NET_SERVER_H initialize server and wait for connections", "id": "progs/doomgeneric/net_server.h", "kind": "module", "label": "net_server.h", "language": "h", "sha256": "f0fe89016f8f55e6", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 18, "name": "NET_SERVER_H"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Ceiling aninmation (lowering, crushing, raising) include \"z_zone.h\" include \"doomdef.h\" include \"p_local.h\" include \"s_sound.h\" State. include \"doomstat.h\" include \"r_state.h\" Data.", "id": "progs/doomgeneric/p_ceilng.c", "kind": "module", "label": "p_ceilng.c", "language": "c", "sha256": "214060a2a6ab4183", "symbol_count": 6, "symbols": [{"doc": "T_MoveCeiling", "kind": "function", "line": 44, "name": "T_MoveCeiling", "signature": "void T_MoveCeiling (ceiling_t* ceiling)"}, {"doc": "EV_DoCeiling Move a ceiling up/down and all around!", "kind": "function", "line": 160, "name": "EV_DoCeiling", "signature": "int\nEV_DoCeiling\n( line_t*\tline,\n ceiling_e\ttype )"}, {"doc": "Add an active ceiling", "kind": "function", "line": 240, "name": "P_AddActiveCeiling", "signature": "void P_AddActiveCeiling(ceiling_t* c)"}, {"doc": "Remove a ceiling's thinker", "kind": "function", "line": 259, "name": "P_RemoveActiveCeiling", "signature": "void P_RemoveActiveCeiling(ceiling_t* c)"}, {"doc": "Restart a ceiling that's in-stasis", "kind": "function", "line": 280, "name": "P_ActivateInStasisCeiling", "signature": "void P_ActivateInStasisCeiling(line_t* line)"}, {"doc": "EV_CeilingCrushStop Stop a ceiling from crushing!", "kind": "function", "line": 303, "name": "EV_CeilingCrushStop", "signature": "int\tEV_CeilingCrushStop(line_t\t*line)"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Door animation code (opening/closing) include \"z_zone.h\" include \"doomdef.h\" include \"deh_main.h\" include \"p_local.h\" include \"s_sound.h\" State. include \"doomstat.h\" include \"r_state.h\"", "id": "progs/doomgeneric/p_doors.c", "kind": "module", "label": "p_doors.c", "language": "c", "sha256": "fe351b5a5416bb4a", "symbol_count": 10, "symbols": [{"doc": "T_VerticalDoor", "kind": "function", "line": 57, "name": "T_VerticalDoor", "signature": "void T_VerticalDoor (vldoor_t* door)"}, {"doc": "EV_DoLockedDoor Move a locked door up/down", "kind": "function", "line": 193, "name": "EV_DoLockedDoor", "signature": "int\nEV_DoLockedDoor\n( line_t*\tline,\n vldoor_e\ttype,\n mobj_t*\tthing )"}, {"kind": "function", "line": 249, "name": "EV_DoDoor", "signature": "int\nEV_DoDoor\n( line_t*\tline,\n vldoor_e\ttype )"}, {"doc": "EV_VerticalDoor : open a door manually, no tag value", "kind": "function", "line": 336, "name": "EV_VerticalDoor", "signature": "void\nEV_VerticalDoor\n( line_t*\tline,\n mobj_t*\tthing )"}, {"doc": "Spawn a door that closes after 30 seconds", "kind": "function", "line": 519, "name": "P_SpawnDoorCloseIn30", "signature": "void P_SpawnDoorCloseIn30 (sector_t* sec)"}, {"doc": "Spawn a door that opens after 5 minutes", "kind": "function", "line": 541, "name": "P_SpawnDoorRaiseIn5Mins", "signature": "void\nP_SpawnDoorRaiseIn5Mins\n( sector_t*\tsec,\n int\t\tsecnum )"}, {"kind": "function", "line": 579, "name": "P_InitSlidingDoorFrames", "signature": "void P_InitSlidingDoorFrames(void)"}, {"doc": "Return index into \"slideFrames\" array for which door type to use", "kind": "function", "line": 624, "name": "P_FindSlidingDoorType", "signature": "int P_FindSlidingDoorType(line_t*\tline)"}, {"kind": "function", "line": 638, "name": "T_SlidingDoor", "signature": "void T_SlidingDoor (slidedoor_t*\tdoor)"}, {"kind": "function", "line": 723, "name": "EV_SlidingDoor", "signature": "void\nEV_SlidingDoor\n( line_t*\tline,\n mobj_t*\tthing )"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Enemy thinking, AI. Action Pointer Functions that are associated with states/frames. include include include \"m_random.h\" include \"i_system.h\" include \"doomdef.h\" include \"p_local.h\" include \"s_sound.h\"", "id": "progs/doomgeneric/p_enemy.c", "kind": "module", "label": "p_enemy.c", "language": "c", "sha256": "9daa4e08b3041a36", "symbol_count": 67, "symbols": [{"kind": "function", "line": 97, "name": "P_RecursiveSound", "signature": "void\nP_RecursiveSound\n( sector_t*\tsec,\n int\t\tsoundblocks )"}, {"doc": "P_NoiseAlert If a monster yells at a player, it will alert other monsters to the player.", "kind": "function", "line": 151, "name": "P_NoiseAlert", "signature": "void\nP_NoiseAlert\n( mobj_t*\ttarget,\n mobj_t*\temmiter )"}, {"doc": "P_CheckMeleeRange", "kind": "function", "line": 167, "name": "P_CheckMeleeRange", "signature": "boolean P_CheckMeleeRange (mobj_t*\tactor)"}, {"doc": "P_CheckMissileRange", "kind": "function", "line": 190, "name": "P_CheckMissileRange", "signature": "boolean P_CheckMissileRange (mobj_t* actor)"}, {"kind": "function", "line": 259, "name": "P_Move", "signature": "boolean P_Move (mobj_t*\tactor)"}, {"doc": "TryWalk Attempts to move actor on in its current (ob->moveangle) direction. If blocked by either a wall or an actor returns FALSE If move is either clear or blocked only by a door, returns TRUE and sets... If a door is in the way, an OpenDoor call is made to start it opening.", "kind": "function", "line": 337, "name": "P_TryWalk", "signature": "boolean P_TryWalk (mobj_t* actor)"}, {"kind": "function", "line": 347, "name": "P_NewChaseDir", "signature": "void P_NewChaseDir (mobj_t*\tactor)"}, {"doc": "P_LookForPlayers If allaround is false, only look 180 degrees in front. Returns true if a player is targeted.", "kind": "function", "line": 486, "name": "P_LookForPlayers", "signature": "boolean\nP_LookForPlayers\n( mobj_t*\tactor,\n boolean\tallaround )"}, {"doc": "A_KeenDie DOOM II special, map 32. Uses special tag 666.", "kind": "function", "line": 551, "name": "A_KeenDie", "signature": "void A_KeenDie (mobj_t* mo)"}, {"doc": "A_Look Stay in state until a player is sighted.", "kind": "function", "line": 589, "name": "A_Look", "signature": "void A_Look (mobj_t* actor)"}, {"doc": "A_Chase Actor has a melee attack, so it tries to close as fast as possible", "kind": "function", "line": 657, "name": "A_Chase", "signature": "void A_Chase (mobj_t*\tactor)"}, {"doc": "A_FaceTarget", "kind": "function", "line": 767, "name": "A_FaceTarget", "signature": "void A_FaceTarget (mobj_t* actor)"}, {"doc": "A_PosAttack", "kind": "function", "line": 787, "name": "A_PosAttack", "signature": "void A_PosAttack (mobj_t* actor)"}, {"kind": "function", "line": 805, "name": "A_SPosAttack", "signature": "void A_SPosAttack (mobj_t* actor)"}, {"kind": "function", "line": 829, "name": "A_CPosAttack", "signature": "void A_CPosAttack (mobj_t* actor)"}, {"kind": "function", "line": 849, "name": "A_CPosRefire", "signature": "void A_CPosRefire (mobj_t* actor)"}, {"kind": "function", "line": 865, "name": "A_SpidRefire", "signature": "void A_SpidRefire (mobj_t* actor)"}, {"kind": "function", "line": 882, "name": "A_BspiAttack", "signature": "void A_BspiAttack (mobj_t *actor)"}, {"doc": "A_TroopAttack", "kind": "function", "line": 898, "name": "A_TroopAttack", "signature": "void A_TroopAttack (mobj_t* actor)"}, {"kind": "function", "line": 918, "name": "A_SargAttack", "signature": "void A_SargAttack (mobj_t* actor)"}, {"kind": "function", "line": 934, "name": "A_HeadAttack", "signature": "void A_HeadAttack (mobj_t* actor)"}, {"kind": "function", "line": 953, "name": "A_CyberAttack", "signature": "void A_CyberAttack (mobj_t* actor)"}, {"kind": "function", "line": 962, "name": "A_BruisAttack", "signature": "void A_BruisAttack (mobj_t* actor)"}, {"doc": "A_SkelMissile", "kind": "function", "line": 987, "name": "A_SkelMissile", "signature": "void A_SkelMissile (mobj_t* actor)"}, {"kind": "function", "line": 1005, "name": "A_Tracer", "signature": "void A_Tracer (mobj_t* actor)"}, {"kind": "function", "line": 1076, "name": "A_SkelWhoosh", "signature": "void A_SkelWhoosh (mobj_t*\tactor)"}, {"kind": "function", "line": 1085, "name": "A_SkelFist", "signature": "void A_SkelFist (mobj_t*\tactor)"}, {"kind": "function", "line": 1113, "name": "PIT_VileCheck", "signature": "boolean PIT_VileCheck (mobj_t*\tthing)"}, {"doc": "A_VileChase Check for ressurecting a body", "kind": "function", "line": 1152, "name": "A_VileChase", "signature": "void A_VileChase (mobj_t* actor)"}, {"doc": "A_VileStart", "kind": "function", "line": 1218, "name": "A_VileStart", "signature": "void A_VileStart (mobj_t* actor)"}, {"kind": "function", "line": 1229, "name": "A_StartFire", "signature": "void A_StartFire (mobj_t* actor)"}, {"kind": "function", "line": 1235, "name": "A_FireCrackle", "signature": "void A_FireCrackle (mobj_t* actor)"}, {"kind": "function", "line": 1241, "name": "A_Fire", "signature": "void A_Fire (mobj_t* actor)"}, {"doc": "A_VileTarget Spawn the hellfire", "kind": "function", "line": 1273, "name": "A_VileTarget", "signature": "void A_VileTarget (mobj_t*\tactor)"}, {"doc": "A_VileAttack", "kind": "function", "line": 1298, "name": "A_VileAttack", "signature": "void A_VileAttack (mobj_t* actor)"}, {"doc": "Mancubus attack, firing three missiles (bruisers) in three different directions? Doesn't look like it. define\tFATSPREAD\t(ANG90/8)", "kind": "function", "line": 1338, "name": "A_FatRaise", "signature": "void A_FatRaise (mobj_t *actor)"}, {"kind": "function", "line": 1344, "name": "A_FatAttack1", "signature": "void A_FatAttack1 (mobj_t* actor)"}, {"kind": "function", "line": 1365, "name": "A_FatAttack2", "signature": "void A_FatAttack2 (mobj_t* actor)"}, {"kind": "function", "line": 1384, "name": "A_FatAttack3", "signature": "void A_FatAttack3 (mobj_t*\tactor)"}, {"doc": "SkullAttack Fly at the player like a missile. define\tSKULLSPEED\t\t(20*FRACUNIT)", "kind": "function", "line": 1414, "name": "A_SkullAttack", "signature": "void A_SkullAttack (mobj_t* actor)"}, {"doc": "A_PainShootSkull Spawn a lost soul and launch it at the target", "kind": "function", "line": 1445, "name": "A_PainShootSkull", "signature": "void\nA_PainShootSkull\n( mobj_t*\tactor,\n angle_t\tangle )"}, {"doc": "A_PainAttack Spawn a lost soul and launch it at the target", "kind": "function", "line": 1508, "name": "A_PainAttack", "signature": "void A_PainAttack (mobj_t* actor)"}, {"kind": "function", "line": 1516, "name": "A_PainDie", "signature": "void A_PainDie (mobj_t* actor)"}, {"kind": "function", "line": 1525, "name": "A_Scream", "signature": "void A_Scream (mobj_t* actor)"}, {"kind": "function", "line": 1566, "name": "A_XScream", "signature": "void A_XScream (mobj_t* actor)"}, {"kind": "function", "line": 1572, "name": "A_Pain", "signature": "void A_Pain (mobj_t* actor)"}, {"kind": "function", "line": 1578, "name": "A_Fall", "signature": "void A_Fall (mobj_t *actor)"}, {"doc": "A_Explode", "kind": "function", "line": 1594, "name": "A_Explode", "signature": "void A_Explode (mobj_t* thingy)"}, {"doc": "Check whether the death of the specified monster type is allowed to trigger the end of episode special action. This behavior changed in v1.9, the most notable effect of which was to break uac_dead.wad", "kind": "function", "line": 1604, "name": "CheckBossEnd", "signature": "static boolean CheckBossEnd(mobjtype_t motype)"}, {"doc": "A_BossDeath Possibly trigger special effects if on first boss level", "kind": "function", "line": 1656, "name": "A_BossDeath", "signature": "void A_BossDeath (mobj_t* mo)"}, {"kind": "function", "line": 1755, "name": "A_Hoof", "signature": "void A_Hoof (mobj_t* mo)"}, {"kind": "function", "line": 1762, "name": "A_Metal", "signature": "void A_Metal (mobj_t* mo)"}, {"kind": "function", "line": 1768, "name": "A_BabyMetal", "signature": "void A_BabyMetal (mobj_t* mo)"}, {"kind": "function", "line": 1774, "name": "A_OpenShotgun2", "signature": "void\nA_OpenShotgun2\n( player_t*\tplayer,\n pspdef_t*\tpsp )"}, {"kind": "function", "line": 1782, "name": "A_LoadShotgun2", "signature": "void\nA_LoadShotgun2\n( player_t*\tplayer,\n pspdef_t*\tpsp )"}, {"kind": "function", "line": 1795, "name": "A_CloseShotgun2", "signature": "void\nA_CloseShotgun2\n( player_t*\tplayer,\n pspdef_t*\tpsp )"}, {"kind": "function", "line": 1810, "name": "A_BrainAwake", "signature": "void A_BrainAwake (mobj_t* mo)"}, {"kind": "function", "line": 1839, "name": "A_BrainPain", "signature": "void A_BrainPain (mobj_t*\tmo)"}, {"kind": "function", "line": 1845, "name": "A_BrainScream", "signature": "void A_BrainScream (mobj_t*\tmo)"}, {"kind": "function", "line": 1870, "name": "A_BrainExplode", "signature": "void A_BrainExplode (mobj_t* mo)"}, {"kind": "function", "line": 1892, "name": "A_BrainDie", "signature": "void A_BrainDie (mobj_t*\tmo)"}, {"kind": "function", "line": 1898, "name": "A_BrainSpit", "signature": "void A_BrainSpit (mobj_t*\tmo)"}, {"doc": "travelling cube sound", "kind": "function", "line": 1928, "name": "A_SpawnSound", "signature": "void A_SpawnSound (mobj_t* mo)"}, {"kind": "function", "line": 1933, "name": "A_SpawnFly", "signature": "void A_SpawnFly (mobj_t* mo)"}, {"kind": "function", "line": 1989, "name": "A_PlayerScream", "signature": "void A_PlayerScream (mobj_t* mo)"}, {"kind": "macro", "line": 1337, "name": "FATSPREAD"}, {"kind": "macro", "line": 1413, "name": "SKULLSPEED"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Floor animation: raising stairs. include \"z_zone.h\" include \"doomdef.h\" include \"p_local.h\" include \"s_sound.h\" State. include \"doomstat.h\" include \"r_state.h\" Data.", "id": "progs/doomgeneric/p_floor.c", "kind": "module", "label": "p_floor.c", "language": "c", "sha256": "9479d97234dbe823", "symbol_count": 4, "symbols": [{"doc": "Move a plane (floor or ceiling) and check for crushing", "kind": "function", "line": 41, "name": "T_MovePlane", "signature": "result_e\nT_MovePlane\n( sector_t*\tsector,\n fixed_t\tspeed,\n fixed_t\tdest,\n boolean\tcrush,\n int\t..."}, {"doc": "MOVE A FLOOR TO IT'S DESTINATION (UP OR DOWN)", "kind": "function", "line": 202, "name": "T_MoveFloor", "signature": "void T_MoveFloor(floormove_t* floor)"}, {"doc": "HANDLE FLOOR TYPES", "kind": "function", "line": 250, "name": "EV_DoFloor", "signature": "int\nEV_DoFloor\n( line_t*\tline,\n floor_e\tfloortype )"}, {"doc": "BUILD A STAIRCASE!", "kind": "function", "line": 443, "name": "EV_BuildStairs", "signature": "int\nEV_BuildStairs\n( line_t*\tline,\n stair_e\ttype )"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Handling interactions (i.e., collisions). Data. include \"doomdef.h\" include \"dstrings.h\" include \"sounds.h\" include \"deh_main.h\" include \"deh_misc.h\" include \"doomstat.h\"", "id": "progs/doomgeneric/p_inter.c", "kind": "module", "label": "p_inter.c", "language": "c", "sha256": "533d0b7b7920dcdb", "symbol_count": 10, "symbols": [{"doc": "P_GiveAmmo Num is the number of clip loads, not the individual count (0= 1/2 clip). Returns false if the ammo can't be picked up at all", "kind": "function", "line": 64, "name": "P_GiveAmmo", "signature": "boolean\nP_GiveAmmo\n( player_t*\tplayer,\n ammotype_t\tammo,\n int\t\tnum )"}, {"doc": "P_GiveWeapon The weapon name may have a MF_DROPPED flag ored in.", "kind": "function", "line": 159, "name": "P_GiveWeapon", "signature": "boolean\nP_GiveWeapon\n( player_t*\tplayer,\n weapontype_t\tweapon,\n boolean\tdropped )"}, {"doc": "P_GiveBody Returns false if the body isn't needed at all", "kind": "function", "line": 222, "name": "P_GiveBody", "signature": "boolean\nP_GiveBody\n( player_t*\tplayer,\n int\t\tnum )"}, {"doc": "P_GiveArmor Returns false if the armor is worse than the current armor.", "kind": "function", "line": 245, "name": "P_GiveArmor", "signature": "boolean\nP_GiveArmor\n( player_t*\tplayer,\n int\t\tarmortype )"}, {"doc": "P_GiveCard", "kind": "function", "line": 267, "name": "P_GiveCard", "signature": "void\nP_GiveCard\n( player_t*\tplayer,\n card_t\tcard )"}, {"doc": "P_GivePower", "kind": "function", "line": 283, "name": "P_GivePower", "signature": "boolean\nP_GivePower\n( player_t*\tplayer,\n int /*powertype_t*/\tpower )"}, {"doc": "P_TouchSpecialThing", "kind": "function", "line": 332, "name": "P_TouchSpecialThing", "signature": "void\nP_TouchSpecialThing\n( mobj_t*\tspecial,\n mobj_t*\ttoucher )"}, {"doc": "KillMobj", "kind": "function", "line": 665, "name": "P_KillMobj", "signature": "void\nP_KillMobj\n( mobj_t*\tsource,\n mobj_t*\ttarget )"}, {"doc": "P_DamageMobj Damages both enemies and players \"inflictor\" is the thing that caused the damage creature or missile, can be NULL (slime, etc) \"source\" is the thing to target after taking damage creature or NULL Source and inflictor are the same for melee attacks. Source can be NULL for slime, barrel explosions and other environmental stuff.", "kind": "function", "line": 778, "name": "P_DamageMobj", "signature": "void\nP_DamageMobj\n( mobj_t*\ttarget,\n mobj_t*\tinflictor,\n mobj_t*\tsource,\n int \t\tdamage )"}, {"kind": "macro", "line": 41, "name": "BONUSADD"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: ifndef __P_INTER__ define __P_INTER__", "id": "progs/doomgeneric/p_inter.h", "kind": "module", "label": "p_inter.h", "language": "h", "sha256": "eb9b7042a9dff119", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__P_INTER__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Handle Sector base lighting effects. Muzzle flash? include \"z_zone.h\" include \"m_random.h\" include \"doomdef.h\" include \"p_local.h\" State. include \"r_state.h\"", "id": "progs/doomgeneric/p_lights.c", "kind": "module", "label": "p_lights.c", "language": "c", "sha256": "571047c11df6a8e1", "symbol_count": 11, "symbols": [{"doc": "T_FireFlicker", "kind": "function", "line": 39, "name": "T_FireFlicker", "signature": "void T_FireFlicker (fireflicker_t* flick)"}, {"doc": "P_SpawnFireFlicker", "kind": "function", "line": 61, "name": "P_SpawnFireFlicker", "signature": "void P_SpawnFireFlicker (sector_t*\tsector)"}, {"doc": "T_LightFlash Do flashing lights.", "kind": "function", "line": 91, "name": "T_LightFlash", "signature": "void T_LightFlash (lightflash_t* flash)"}, {"doc": "P_SpawnLightFlash After the map has been loaded, scan each sector for specials that spawn thinkers", "kind": "function", "line": 117, "name": "P_SpawnLightFlash", "signature": "void P_SpawnLightFlash (sector_t*\tsector)"}, {"doc": "T_StrobeFlash", "kind": "function", "line": 148, "name": "T_StrobeFlash", "signature": "void T_StrobeFlash (strobe_t*\t\tflash)"}, {"doc": "P_SpawnStrobeFlash After the map has been loaded, scan each sector for specials that spawn thinkers", "kind": "function", "line": 173, "name": "P_SpawnStrobeFlash", "signature": "void\nP_SpawnStrobeFlash\n( sector_t*\tsector,\n int\t\tfastOrSlow,\n int\t\tinSync )"}, {"doc": "Start strobing lights (usually from a trigger)", "kind": "function", "line": 208, "name": "EV_StartLightStrobing", "signature": "void EV_StartLightStrobing(line_t*\tline)"}, {"doc": "TURN LINE'S TAG LIGHTS OFF", "kind": "function", "line": 229, "name": "EV_TurnTagLightsOff", "signature": "void EV_TurnTagLightsOff(line_t* line)"}, {"doc": "TURN LINE'S TAG LIGHTS ON", "kind": "function", "line": 263, "name": "EV_LightTurnOn", "signature": "void\nEV_LightTurnOn\n( line_t*\tline,\n int\t\tbright )"}, {"doc": "Spawn glowing light", "kind": "function", "line": 306, "name": "T_Glow", "signature": "void T_Glow(glow_t*\tg)"}, {"kind": "function", "line": 332, "name": "P_SpawnGlowingLight", "signature": "void P_SpawnGlowingLight(sector_t*\tsector)"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Play functions, animation, global header. ifndef __P_LOCAL__ define __P_LOCAL__ ifndef __R_LOCAL__ include \"r_local.h\" endif define FLOATSPEED\t\t(FRACUNIT*4) define MAXHEALTH\t\t100", "id": "progs/doomgeneric/p_local.h", "kind": "module", "label": "p_local.h", "language": "h", "sha256": "e0547230dfa5ae83", "symbol_count": 27, "symbols": [{"kind": "macro", "line": 21, "name": "__P_LOCAL__"}, {"kind": "macro", "line": 26, "name": "FLOATSPEED"}, {"kind": "macro", "line": 28, "name": "MAXHEALTH"}, {"kind": "macro", "line": 31, "name": "VIEWHEIGHT"}, {"kind": "macro", "line": 35, "name": "MAPBLOCKUNITS"}, {"kind": "macro", "line": 36, "name": "MAPBLOCKSIZE"}, {"kind": "macro", "line": 37, "name": "MAPBLOCKSHIFT"}, {"kind": "macro", "line": 38, "name": "MAPBMASK"}, {"kind": "macro", "line": 39, "name": "MAPBTOFRAC"}, {"kind": "macro", "line": 43, "name": "PLAYERRADIUS"}, {"kind": "macro", "line": 48, "name": "MAXRADIUS"}, {"kind": "macro", "line": 49, "name": "GRAVITY"}, {"kind": "macro", "line": 51, "name": "MAXMOVE"}, {"kind": "macro", "line": 52, "name": "USERANGE"}, {"kind": "macro", "line": 54, "name": "MELEERANGE"}, {"kind": "macro", "line": 55, "name": "MISSILERANGE"}, {"kind": "macro", "line": 58, "name": "BASETHRESHOLD"}, {"kind": "macro", "line": 92, "name": "ONFLOORZ"}, {"kind": "macro", "line": 93, "name": "ONCEILINGZ"}, {"kind": "macro", "line": 96, "name": "ITEMQUESIZE"}, {"kind": "macro", "line": 153, "name": "MAXINTERCEPTS_ORIGINAL"}, {"kind": "macro", "line": 155, "name": "MAXINTERCEPTS"}, {"kind": "macro", "line": 178, "name": "PT_ADDLINES"}, {"kind": "macro", "line": 180, "name": "PT_ADDTHINGS"}, {"kind": "macro", "line": 181, "name": "PT_EARLYOUT"}, {"kind": "macro", "line": 218, "name": "MAXSPECIALCROSS"}, {"kind": "macro", "line": 220, "name": "MAXSPECIALCROSS_ORIGINAL"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard, Andrey Budko This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Movement, collision handling. Shooting and aiming. include include include \"deh_misc.h\" include \"m_bbox.h\" include \"m_random.h\" include \"i_system.h\" include \"doomdef.h\" include \"m_argv.h\"", "id": "progs/doomgeneric/p_map.c", "kind": "module", "label": "p_map.c", "language": "c", "sha256": "0367b1112e0c4aff", "symbol_count": 22, "symbols": [{"doc": "PIT_StompThing", "kind": "function", "line": 97, "name": "PIT_StompThing", "signature": "boolean PIT_StompThing (mobj_t* thing)"}, {"doc": "P_TeleportMove", "kind": "function", "line": 130, "name": "P_TeleportMove", "signature": "boolean\nP_TeleportMove\n( mobj_t*\tthing,\n fixed_t\tx,\n fixed_t\ty )"}, {"doc": "PIT_CheckLine Adjusts tmfloorz and tmceilingz as lines are contacted", "kind": "function", "line": 206, "name": "PIT_CheckLine", "signature": "boolean PIT_CheckLine (line_t* ld)"}, {"doc": "PIT_CheckThing", "kind": "function", "line": 275, "name": "PIT_CheckThing", "signature": "boolean PIT_CheckThing (mobj_t* thing)"}, {"doc": "during: special things are touched if MF_PICKUP early out on solid lines? out: newsubsec floorz ceilingz tmdropoffz the lowest point contacted (monsters won't move to a dropoff) speciallines[] numspeciallines", "kind": "function", "line": 401, "name": "P_CheckPosition", "signature": "boolean\nP_CheckPosition\n( mobj_t*\tthing,\n fixed_t\tx,\n fixed_t\ty )"}, {"doc": "P_TryMove Attempt to move to a new position, crossing special lines unless MF_TELEPORT is set.", "kind": "function", "line": 477, "name": "P_TryMove", "signature": "boolean\nP_TryMove\n( mobj_t*\tthing,\n fixed_t\tx,\n fixed_t\ty )"}, {"doc": "P_ThingHeightClip Takes a valid thing and adjusts the thing->floorz, thing->ceilingz, and possibly thing->z. This is called for all nearby monsters whenever a sector changes height. If the thing doesn't fit, the z will be set to the lowest value and false will be returned.", "kind": "function", "line": 557, "name": "P_ThingHeightClip", "signature": "boolean P_ThingHeightClip (mobj_t* thing)"}, {"doc": "P_HitSlideLine Adjusts the xmove / ymove so that the next move will slide along the wall.", "kind": "function", "line": 611, "name": "P_HitSlideLine", "signature": "void P_HitSlideLine (line_t* ld)"}, {"doc": "PTR_SlideTraverse", "kind": "function", "line": 663, "name": "PTR_SlideTraverse", "signature": "boolean PTR_SlideTraverse (intercept_t* in)"}, {"doc": "P_SlideMove The momx / momy move is bad, so try to slide along a wall. Find the first line hit, move flush to it, and slide along it This is a kludgy mess.", "kind": "function", "line": 722, "name": "P_SlideMove", "signature": "void P_SlideMove (mobj_t* mo)"}, {"doc": "PTR_AimTraverse Sets linetaget and aimslope when a target is aimed at.", "kind": "function", "line": 842, "name": "PTR_AimTraverse", "signature": "boolean\nPTR_AimTraverse (intercept_t* in)"}, {"doc": "PTR_ShootTraverse", "kind": "function", "line": 928, "name": "PTR_ShootTraverse", "signature": "boolean PTR_ShootTraverse (intercept_t* in)"}, {"doc": "P_AimLineAttack", "kind": "function", "line": 1067, "name": "P_AimLineAttack", "signature": "fixed_t\nP_AimLineAttack\n( mobj_t*\tt1,\n angle_t\tangle,\n fixed_t\tdistance )"}, {"doc": "P_LineAttack If damage == 0, it is just a test trace that will leave linetarget set.", "kind": "function", "line": 1109, "name": "P_LineAttack", "signature": "void\nP_LineAttack\n( mobj_t*\tt1,\n angle_t\tangle,\n fixed_t\tdistance,\n fixed_t\tslope,\n int\t\tdama..."}, {"kind": "function", "line": 1141, "name": "PTR_UseTraverse", "signature": "boolean\tPTR_UseTraverse (intercept_t* in)"}, {"doc": "P_UseLines Looks for special lines in front of the player to activate.", "kind": "function", "line": 1177, "name": "P_UseLines", "signature": "void P_UseLines (player_t*\tplayer)"}, {"doc": "PIT_RadiusAttack \"bombsource\" is the creature that caused the explosion at \"bombspot\".", "kind": "function", "line": 1211, "name": "PIT_RadiusAttack", "signature": "boolean PIT_RadiusAttack (mobj_t* thing)"}, {"doc": "P_RadiusAttack Source is the creature that caused the explosion at spot.", "kind": "function", "line": 1252, "name": "P_RadiusAttack", "signature": "void\nP_RadiusAttack\n( mobj_t*\tspot,\n mobj_t*\tsource,\n int\t\tdamage )"}, {"doc": "PIT_ChangeSector", "kind": "function", "line": 1304, "name": "PIT_ChangeSector", "signature": "boolean PIT_ChangeSector (mobj_t*\tthing)"}, {"doc": "P_ChangeSector", "kind": "function", "line": 1367, "name": "P_ChangeSector", "signature": "boolean\nP_ChangeSector\n( sector_t*\tsector,\n boolean\tcrunch )"}, {"doc": "Code to emulate the behavior of Vanilla Doom when encountering an overrun of the spechit array. This is by Andrey Budko (e6y) and comes from his PrBoom plus port. A big thanks to Andrey for this.", "kind": "function", "line": 1390, "name": "SpechitOverrun", "signature": "static void SpechitOverrun(line_t *ld)"}, {"kind": "macro", "line": 49, "name": "DEFAULT_SPECHIT_MAGIC"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard Copyright(C) 2005, 2006 Andrey Budko This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Movement/collision utility functions, as used by function in p_map.c. BLOCKMAP Iterator functions, and some PIT_* functions to use for iteration. include include \"m_bbox.h\" include \"doomdef.h\"", "id": "progs/doomgeneric/p_maputl.c", "kind": "module", "label": "p_maputl.c", "language": "c", "sha256": "e9a1658476869644", "symbol_count": 17, "symbols": [{"doc": "P_AproxDistance Gives an estimation of distance (not exact)", "kind": "function", "line": 42, "name": "P_AproxDistance", "signature": "fixed_t\nP_AproxDistance\n( fixed_t\tdx,\n fixed_t\tdy )"}, {"doc": "P_PointOnLineSide Returns 0 or 1", "kind": "function", "line": 60, "name": "P_PointOnLineSide", "signature": "int\nP_PointOnLineSide\n( fixed_t\tx,\n fixed_t\ty,\n line_t*\tline )"}, {"doc": "P_BoxOnLineSide Considers the line to be infinite Returns side 0 or 1, -1 if box crosses the line.", "kind": "function", "line": 104, "name": "P_BoxOnLineSide", "signature": "int\nP_BoxOnLineSide\n( fixed_t*\ttmbox,\n line_t*\tld )"}, {"doc": "P_PointOnDivlineSide Returns 0 or 1.", "kind": "function", "line": 155, "name": "P_PointOnDivlineSide", "signature": "int\nP_PointOnDivlineSide\n( fixed_t\tx,\n fixed_t\ty,\n divline_t*\tline )"}, {"doc": "P_MakeDivline", "kind": "function", "line": 205, "name": "P_MakeDivline", "signature": "void\nP_MakeDivline\n( line_t*\tli,\n divline_t*\tdl )"}, {"doc": "P_InterceptVector Returns the fractional intercept point along the first divline. This is only called by the addthings and addlines traversers.", "kind": "function", "line": 225, "name": "P_InterceptVector", "signature": "fixed_t\nP_InterceptVector\n( divline_t*\tv2,\n divline_t*\tv1 )"}, {"kind": "function", "line": 293, "name": "P_LineOpening", "signature": "void P_LineOpening (line_t* linedef)"}, {"doc": "P_UnsetThingPosition Unlinks a thing from block map and sectors. On each position change, BLOCKMAP and other lookups maintaining lists ot things inside these structures need to be updated.", "kind": "function", "line": 342, "name": "P_UnsetThingPosition", "signature": "void P_UnsetThingPosition (mobj_t* thing)"}, {"doc": "P_SetThingPosition Links a thing into both a block and a subsector based on it's x y. Sets thing->subsector properly", "kind": "function", "line": 390, "name": "P_SetThingPosition", "signature": "void\nP_SetThingPosition (mobj_t* thing)"}, {"doc": "P_BlockLinesIterator The validcount flags are used to avoid checking lines that are marked in multiple mapblocks, so increment validcount before the first call to P_BlockLinesIterator, then make one or more calls to it.", "kind": "function", "line": 466, "name": "P_BlockLinesIterator", "signature": "boolean\nP_BlockLinesIterator\n( int\t\t\tx,\n int\t\t\ty,\n boolean(*func)(line_t*) )"}, {"doc": "P_BlockThingsIterator", "kind": "function", "line": 507, "name": "P_BlockThingsIterator", "signature": "boolean\nP_BlockThingsIterator\n( int\t\t\tx,\n int\t\t\ty,\n boolean(*func)(mobj_t*) )"}, {"doc": "PIT_AddLineIntercepts. Looks for lines in the given block that intercept the given trace to add to the intercepts list. A line is crossed if its endpoints are on opposite sides of the trace. Returns true if earlyout and a solid line hit.", "kind": "function", "line": 558, "name": "PIT_AddLineIntercepts", "signature": "boolean\nPIT_AddLineIntercepts (line_t* ld)"}, {"doc": "PIT_AddThingIntercepts", "kind": "function", "line": 614, "name": "PIT_AddThingIntercepts", "signature": "boolean PIT_AddThingIntercepts (mobj_t* thing)"}, {"doc": "P_TraverseIntercepts Returns true if the traverser function returns true for all lines.", "kind": "function", "line": 681, "name": "P_TraverseIntercepts", "signature": "boolean\nP_TraverseIntercepts\n( traverser_t\tfunc,\n fixed_t\tmaxfrac )"}, {"doc": "Overwrite a specific memory location with a value.", "kind": "function", "line": 781, "name": "InterceptsMemoryOverrun", "signature": "static void InterceptsMemoryOverrun(int location, int value)"}, {"doc": "Emulate overruns of the intercepts[] array.", "kind": "function", "line": 826, "name": "InterceptsOverrun", "signature": "static void InterceptsOverrun(int num_intercepts, intercept_t *intercept)"}, {"doc": "P_PathTraverse Traces a line from x1,y1 to x2,y2, calling the traverser function for each. Returns true if the traverser function returns true for all lines.", "kind": "function", "line": 860, "name": "P_PathTraverse", "signature": "boolean\nP_PathTraverse\n( fixed_t\t\tx1,\n fixed_t\t\ty1,\n fixed_t\t\tx2,\n fixed_t\t\ty2,\n int\t\t\tflags,..."}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Moving object handling. Spawn functions. include include \"i_system.h\" include \"z_zone.h\" include \"m_random.h\" include \"doomdef.h\" include \"p_local.h\" include \"sounds.h\" include \"st_stuff.h\" include \"hu_stuff.h\"", "id": "progs/doomgeneric/p_mobj.c", "kind": "module", "label": "p_mobj.c", "language": "c", "sha256": "0ac8d58c02d71f8e", "symbol_count": 19, "symbols": [{"kind": "function", "line": 46, "name": "P_SetMobjState", "signature": "boolean\nP_SetMobjState\n( mobj_t*\tmobj,\n statenum_t\tstate )"}, {"doc": "P_ExplodeMissile", "kind": "function", "line": 84, "name": "P_ExplodeMissile", "signature": "void P_ExplodeMissile (mobj_t* mo)"}, {"doc": "P_XYMovement define STOPSPEED\t\t0x1000 define FRICTION\t\t0xe800", "kind": "function", "line": 107, "name": "P_XYMovement", "signature": "void P_XYMovement (mobj_t* mo)"}, {"doc": "P_ZMovement", "kind": "function", "line": 240, "name": "P_ZMovement", "signature": "void P_ZMovement (mobj_t* mo)"}, {"doc": "P_NightmareRespawn", "kind": "function", "line": 382, "name": "P_NightmareRespawn", "signature": "void\nP_NightmareRespawn (mobj_t* mobj)"}, {"doc": "P_MobjThinker", "kind": "function", "line": 441, "name": "P_MobjThinker", "signature": "void P_MobjThinker (mobj_t* mobj)"}, {"doc": "P_SpawnMobj", "kind": "function", "line": 505, "name": "P_SpawnMobj", "signature": "mobj_t*\nP_SpawnMobj\n( fixed_t\tx,\n fixed_t\ty,\n fixed_t\tz,\n mobjtype_t\ttype )"}, {"kind": "function", "line": 570, "name": "P_RemoveMobj", "signature": "void P_RemoveMobj (mobj_t* mobj)"}, {"doc": "P_RespawnSpecials", "kind": "function", "line": 604, "name": "P_RespawnSpecials", "signature": "void P_RespawnSpecials (void)"}, {"doc": "P_SpawnPlayer Called when a player is spawned on the level. Most of the player structure stays unchanged between levels.", "kind": "function", "line": 668, "name": "P_SpawnPlayer", "signature": "void P_SpawnPlayer (mapthing_t* mthing)"}, {"doc": "P_SpawnMapThing The fields of the mapthing should already be in host byte order.", "kind": "function", "line": 739, "name": "P_SpawnMapThing", "signature": "void P_SpawnMapThing (mapthing_t* mthing)"}, {"kind": "function", "line": 849, "name": "P_SpawnPuff", "signature": "void\nP_SpawnPuff\n( fixed_t\tx,\n fixed_t\ty,\n fixed_t\tz )"}, {"doc": "P_SpawnBlood", "kind": "function", "line": 877, "name": "P_SpawnBlood", "signature": "void\nP_SpawnBlood\n( fixed_t\tx,\n fixed_t\ty,\n fixed_t\tz,\n int\t\tdamage )"}, {"doc": "P_CheckMissileSpawn Moves the missile forward a bit and possibly explodes it right there.", "kind": "function", "line": 907, "name": "P_CheckMissileSpawn", "signature": "void P_CheckMissileSpawn (mobj_t* th)"}, {"doc": "Certain functions assume that a mobj_t pointer is non-NULL, causing a crash in some situations where it is NULL. Vanilla Doom did not crash because of the lack of proper memory protection. This function substitutes NULL pointers for pointers to a dummy mobj, to avoid a crash.", "kind": "function", "line": 928, "name": "P_SubstNullMobj", "signature": "mobj_t *P_SubstNullMobj(mobj_t *mobj)"}, {"doc": "P_SpawnMissile", "kind": "function", "line": 949, "name": "P_SpawnMissile", "signature": "mobj_t*\nP_SpawnMissile\n( mobj_t*\tsource,\n mobj_t*\tdest,\n mobjtype_t\ttype )"}, {"doc": "P_SpawnPlayerMissile Tries to aim at a nearby monster", "kind": "function", "line": 995, "name": "P_SpawnPlayerMissile", "signature": "void\nP_SpawnPlayerMissile\n( mobj_t*\tsource,\n mobjtype_t\ttype )"}, {"kind": "macro", "line": 105, "name": "STOPSPEED"}, {"kind": "macro", "line": 106, "name": "FRICTION"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Map Objects, MObj, definition and handling. ifndef __P_MOBJ__ define __P_MOBJ__ Basics. include \"tables.h\" include \"m_fixed.h\" We need the thinker_t stuff. include \"d_think.h\" We need the WAD data structure for Map things,", "id": "progs/doomgeneric/p_mobj.h", "kind": "module", "label": "p_mobj.h", "language": "h", "sha256": "4231f67c00333a31", "symbol_count": 2, "symbols": [{"doc": "Map Object definition.", "kind": "struct", "line": 201, "name": "mobj_s"}, {"kind": "macro", "line": 21, "name": "__P_MOBJ__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Plats (i.e. elevator platforms) code, raising/lowering. include include \"i_system.h\" include \"z_zone.h\" include \"m_random.h\" include \"doomdef.h\" include \"p_local.h\" include \"s_sound.h\" State.", "id": "progs/doomgeneric/p_plats.c", "kind": "module", "label": "p_plats.c", "language": "c", "sha256": "88df115207d9cc1b", "symbol_count": 6, "symbols": [{"doc": "Move a plat up and down", "kind": "function", "line": 45, "name": "T_PlatRaise", "signature": "void T_PlatRaise(plat_t* plat)"}, {"doc": "Do Platforms \"amount\" is only used for SOME platforms.", "kind": "function", "line": 128, "name": "EV_DoPlat", "signature": "int\nEV_DoPlat\n( line_t*\tline,\n plattype_e\ttype,\n int\t\tamount )"}, {"kind": "function", "line": 245, "name": "P_ActivateInStasis", "signature": "void P_ActivateInStasis(int tag)"}, {"kind": "function", "line": 262, "name": "EV_StopPlat", "signature": "void EV_StopPlat(line_t* line)"}, {"kind": "function", "line": 277, "name": "P_AddActivePlat", "signature": "void P_AddActivePlat(plat_t* plat)"}, {"kind": "function", "line": 290, "name": "P_RemoveActivePlat", "signature": "void P_RemoveActivePlat(plat_t* plat)"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Weapon sprite animation, weapon objects. Action functions for weapons. include \"doomdef.h\" include \"d_event.h\" include \"deh_misc.h\" include \"m_random.h\" include \"p_local.h\" include \"s_sound.h\" State.", "id": "progs/doomgeneric/p_pspr.c", "kind": "module", "label": "p_pspr.c", "language": "c", "sha256": "37723e28aa7eb5b5", "symbol_count": 35, "symbols": [{"doc": "P_SetPsprite", "kind": "function", "line": 49, "name": "P_SetPsprite", "signature": "void\nP_SetPsprite\n( player_t*\tplayer,\n int\t\tposition,\n statenum_t\tstnum )"}, {"kind": "function", "line": 102, "name": "P_CalcSwing", "signature": "void P_CalcSwing (player_t*\tplayer)"}, {"doc": "P_BringUpWeapon Starts bringing the pending weapon up from the bottom of the screen. Uses player", "kind": "function", "line": 129, "name": "P_BringUpWeapon", "signature": "void P_BringUpWeapon (player_t* player)"}, {"doc": "P_CheckAmmo Returns true if there is enough ammo to shoot. If not, selects the next weapon to use.", "kind": "function", "line": 152, "name": "P_CheckAmmo", "signature": "boolean P_CheckAmmo (player_t* player)"}, {"doc": "P_FireWeapon.", "kind": "function", "line": 237, "name": "P_FireWeapon", "signature": "void P_FireWeapon (player_t* player)"}, {"doc": "P_DropWeapon Player died, so put the weapon away.", "kind": "function", "line": 256, "name": "P_DropWeapon", "signature": "void P_DropWeapon (player_t* player)"}, {"doc": "A_WeaponReady The player can fire the weapon or change to another weapon at this time. Follows after getting weapon up, or after previous attack/fire sequence.", "kind": "function", "line": 272, "name": "A_WeaponReady", "signature": "void\nA_WeaponReady\n( player_t*\tplayer,\n pspdef_t*\tpsp )"}, {"doc": "A_ReFire The player can re-fire the weapon without lowering it entirely.", "kind": "function", "line": 334, "name": "A_ReFire", "signature": "void A_ReFire\n( player_t*\tplayer,\n pspdef_t*\tpsp )"}, {"kind": "function", "line": 354, "name": "A_CheckReload", "signature": "void\nA_CheckReload\n( player_t*\tplayer,\n pspdef_t*\tpsp )"}, {"doc": "A_Lower Lowers current weapon, and changes weapon at bottom.", "kind": "function", "line": 375, "name": "A_Lower", "signature": "void\nA_Lower\n( player_t*\tplayer,\n pspdef_t*\tpsp )"}, {"doc": "A_Raise", "kind": "function", "line": 413, "name": "A_Raise", "signature": "void\nA_Raise\n( player_t*\tplayer,\n pspdef_t*\tpsp )"}, {"doc": "A_GunFlash", "kind": "function", "line": 439, "name": "A_GunFlash", "signature": "void\nA_GunFlash\n( player_t*\tplayer,\n pspdef_t*\tpsp )"}, {"doc": "A_Punch", "kind": "function", "line": 458, "name": "A_Punch", "signature": "void\nA_Punch\n( player_t*\tplayer,\n pspdef_t*\tpsp )"}, {"doc": "A_Saw", "kind": "function", "line": 492, "name": "A_Saw", "signature": "void\nA_Saw\n( player_t*\tplayer,\n pspdef_t*\tpsp )"}, {"doc": "Doom does not check the bounds of the ammo array. As a result, it is possible to use an ammo type > 4 that overflows into the maxammo array and affects that instead. Through dehacked, for example, it is possible to make a weapon that decreases the max number of ammo for another weapon. Emulate this.", "kind": "function", "line": 541, "name": "DecreaseAmmo", "signature": "static void DecreaseAmmo(player_t *player, int ammonum, int amount)"}, {"doc": "A_FireMissile", "kind": "function", "line": 558, "name": "A_FireMissile", "signature": "void\nA_FireMissile\n( player_t*\tplayer,\n pspdef_t*\tpsp )"}, {"doc": "A_FireBFG", "kind": "function", "line": 571, "name": "A_FireBFG", "signature": "void\nA_FireBFG\n( player_t*\tplayer,\n pspdef_t*\tpsp )"}, {"doc": "A_FirePlasma", "kind": "function", "line": 586, "name": "A_FirePlasma", "signature": "void\nA_FirePlasma\n( player_t*\tplayer,\n pspdef_t*\tpsp )"}, {"kind": "function", "line": 608, "name": "P_BulletSlope", "signature": "void P_BulletSlope (mobj_t*\tmo)"}, {"doc": "P_GunShot", "kind": "function", "line": 634, "name": "P_GunShot", "signature": "void\nP_GunShot\n( mobj_t*\tmo,\n boolean\taccurate )"}, {"doc": "A_FirePistol", "kind": "function", "line": 655, "name": "A_FirePistol", "signature": "void\nA_FirePistol\n( player_t*\tplayer,\n pspdef_t*\tpsp )"}, {"doc": "A_FireShotgun", "kind": "function", "line": 677, "name": "A_FireShotgun", "signature": "void\nA_FireShotgun\n( player_t*\tplayer,\n pspdef_t*\tpsp )"}, {"doc": "A_FireShotgun2", "kind": "function", "line": 704, "name": "A_FireShotgun2", "signature": "void\nA_FireShotgun2\n( player_t*\tplayer,\n pspdef_t*\tpsp )"}, {"doc": "A_FireCGun", "kind": "function", "line": 741, "name": "A_FireCGun", "signature": "void\nA_FireCGun\n( player_t*\tplayer,\n pspdef_t*\tpsp )"}, {"doc": "?", "kind": "function", "line": 770, "name": "A_Light0", "signature": "void A_Light0 (player_t *player, pspdef_t *psp)"}, {"kind": "function", "line": 774, "name": "A_Light1", "signature": "void A_Light1 (player_t *player, pspdef_t *psp)"}, {"kind": "function", "line": 779, "name": "A_Light2", "signature": "void A_Light2 (player_t *player, pspdef_t *psp)"}, {"doc": "A_BFGSpray Spawn a BFG explosion on every monster in view", "kind": "function", "line": 790, "name": "A_BFGSpray", "signature": "void A_BFGSpray (mobj_t* mo)"}, {"doc": "A_BFGsound", "kind": "function", "line": 826, "name": "A_BFGsound", "signature": "void\nA_BFGsound\n( player_t*\tplayer,\n pspdef_t*\tpsp )"}, {"doc": "P_SetupPsprites Called at start of level for each player.", "kind": "function", "line": 840, "name": "P_SetupPsprites", "signature": "void P_SetupPsprites (player_t* player)"}, {"doc": "P_MovePsprites Called every tic by player thinking routine.", "kind": "function", "line": 860, "name": "P_MovePsprites", "signature": "void P_MovePsprites (player_t* player)"}, {"kind": "macro", "line": 37, "name": "LOWERSPEED"}, {"kind": "macro", "line": 39, "name": "RAISESPEED"}, {"kind": "macro", "line": 40, "name": "WEAPONBOTTOM"}, {"kind": "macro", "line": 42, "name": "WEAPONTOP"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Sprite animation. ifndef __P_PSPR__ define __P_PSPR__ Basic data types. Needs fixed point, and BAM angles. include \"m_fixed.h\" include \"tables.h\" Needs to include the precompiled", "id": "progs/doomgeneric/p_pspr.h", "kind": "module", "label": "p_pspr.h", "language": "h", "sha256": "ad1311f12ef7387d", "symbol_count": 3, "symbols": [{"kind": "macro", "line": 21, "name": "__P_PSPR__"}, {"kind": "macro", "line": 44, "name": "FF_FULLBRIGHT"}, {"kind": "macro", "line": 45, "name": "FF_FRAMEMASK"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Archiving: SaveGame I/O. include include include \"dstrings.h\" include \"deh_main.h\" include \"i_system.h\" include \"z_zone.h\" include \"p_local.h\" include \"p_saveg.h\" State.", "id": "progs/doomgeneric/p_saveg.c", "kind": "module", "label": "p_saveg.c", "language": "c", "sha256": "3ace2f86b1aafae8", "symbol_count": 58, "symbols": [{"doc": "Get the filename of a temporary file to write the savegame to. After the file has been successfully saved, it will be renamed to the real file.", "kind": "function", "line": 46, "name": "P_TempSaveGameFile", "signature": "char *P_TempSaveGameFile(void)"}, {"doc": "Get the filename of the save game file to use for the specified slot.", "kind": "function", "line": 60, "name": "P_SaveGameFile", "signature": "char *P_SaveGameFile(int slot)"}, {"doc": "Endian-safe integer read/write functions", "kind": "function", "line": 80, "name": "saveg_read8", "signature": "static byte saveg_read8(void)"}, {"kind": "function", "line": 98, "name": "saveg_write8", "signature": "static void saveg_write8(byte value)"}, {"kind": "function", "line": 111, "name": "saveg_read16", "signature": "static short saveg_read16(void)"}, {"kind": "function", "line": 121, "name": "saveg_write16", "signature": "static void saveg_write16(short value)"}, {"kind": "function", "line": 127, "name": "saveg_read32", "signature": "static int saveg_read32(void)"}, {"kind": "function", "line": 139, "name": "saveg_write32", "signature": "static void saveg_write32(int value)"}, {"doc": "Pad to 4-byte boundaries", "kind": "function", "line": 149, "name": "saveg_read_pad", "signature": "static void saveg_read_pad(void)"}, {"kind": "function", "line": 165, "name": "saveg_write_pad", "signature": "static void saveg_write_pad(void)"}, {"doc": "Pointers", "kind": "function", "line": 184, "name": "saveg_readp", "signature": "static void *saveg_readp(void)"}, {"kind": "function", "line": 189, "name": "saveg_writep", "signature": "static void saveg_writep(void *p)"}, {"doc": "mapthing_t", "kind": "function", "line": 207, "name": "saveg_read_mapthing_t", "signature": "static void saveg_read_mapthing_t(mapthing_t *str)"}, {"kind": "function", "line": 225, "name": "saveg_write_mapthing_t", "signature": "static void saveg_write_mapthing_t(mapthing_t *str)"}, {"doc": "actionf_t", "kind": "function", "line": 247, "name": "saveg_read_actionf_t", "signature": "static void saveg_read_actionf_t(actionf_t *str)"}, {"kind": "function", "line": 253, "name": "saveg_write_actionf_t", "signature": "static void saveg_write_actionf_t(actionf_t *str)"}, {"doc": "thinker_t", "kind": "function", "line": 272, "name": "saveg_read_thinker_t", "signature": "static void saveg_read_thinker_t(thinker_t *str)"}, {"kind": "function", "line": 284, "name": "saveg_write_thinker_t", "signature": "static void saveg_write_thinker_t(thinker_t *str)"}, {"doc": "mobj_t", "kind": "function", "line": 300, "name": "saveg_read_mobj_t", "signature": "static void saveg_read_mobj_t(mobj_t *str)"}, {"kind": "function", "line": 420, "name": "saveg_write_mobj_t", "signature": "static void saveg_write_mobj_t(mobj_t *str)"}, {"doc": "ticcmd_t", "kind": "function", "line": 540, "name": "saveg_read_ticcmd_t", "signature": "static void saveg_read_ticcmd_t(ticcmd_t *str)"}, {"kind": "function", "line": 562, "name": "saveg_write_ticcmd_t", "signature": "static void saveg_write_ticcmd_t(ticcmd_t *str)"}, {"doc": "pspdef_t", "kind": "function", "line": 588, "name": "saveg_read_pspdef_t", "signature": "static void saveg_read_pspdef_t(pspdef_t *str)"}, {"kind": "function", "line": 614, "name": "saveg_write_pspdef_t", "signature": "static void saveg_write_pspdef_t(pspdef_t *str)"}, {"doc": "player_t", "kind": "function", "line": 640, "name": "saveg_read_player_t", "signature": "static void saveg_read_player_t(player_t *str)"}, {"kind": "function", "line": 771, "name": "saveg_write_player_t", "signature": "static void saveg_write_player_t(player_t *str)"}, {"doc": "ceiling_t", "kind": "function", "line": 907, "name": "saveg_read_ceiling_t", "signature": "static void saveg_read_ceiling_t(ceiling_t *str)"}, {"kind": "function", "line": 943, "name": "saveg_write_ceiling_t", "signature": "static void saveg_write_ceiling_t(ceiling_t *str)"}, {"doc": "vldoor_t", "kind": "function", "line": 980, "name": "saveg_read_vldoor_t", "signature": "static void saveg_read_vldoor_t(vldoor_t *str)"}, {"kind": "function", "line": 1010, "name": "saveg_write_vldoor_t", "signature": "static void saveg_write_vldoor_t(vldoor_t *str)"}, {"doc": "floormove_t", "kind": "function", "line": 1041, "name": "saveg_read_floormove_t", "signature": "static void saveg_read_floormove_t(floormove_t *str)"}, {"kind": "function", "line": 1074, "name": "saveg_write_floormove_t", "signature": "static void saveg_write_floormove_t(floormove_t *str)"}, {"doc": "plat_t", "kind": "function", "line": 1108, "name": "saveg_read_plat_t", "signature": "static void saveg_read_plat_t(plat_t *str)"}, {"kind": "function", "line": 1150, "name": "saveg_write_plat_t", "signature": "static void saveg_write_plat_t(plat_t *str)"}, {"doc": "lightflash_t", "kind": "function", "line": 1193, "name": "saveg_read_lightflash_t", "signature": "static void saveg_read_lightflash_t(lightflash_t *str)"}, {"kind": "function", "line": 1220, "name": "saveg_write_lightflash_t", "signature": "static void saveg_write_lightflash_t(lightflash_t *str)"}, {"doc": "strobe_t", "kind": "function", "line": 1248, "name": "saveg_read_strobe_t", "signature": "static void saveg_read_strobe_t(strobe_t *str)"}, {"kind": "function", "line": 1275, "name": "saveg_write_strobe_t", "signature": "static void saveg_write_strobe_t(strobe_t *str)"}, {"doc": "glow_t", "kind": "function", "line": 1303, "name": "saveg_read_glow_t", "signature": "static void saveg_read_glow_t(glow_t *str)"}, {"kind": "function", "line": 1324, "name": "saveg_write_glow_t", "signature": "static void saveg_write_glow_t(glow_t *str)"}, {"doc": "Write the header for a savegame", "kind": "function", "line": 1346, "name": "P_WriteSaveGameHeader", "signature": "void P_WriteSaveGameHeader(char *description)"}, {"doc": "Read the header for a savegame", "kind": "function", "line": 1378, "name": "P_ReadSaveGameHeader", "signature": "boolean P_ReadSaveGameHeader(void)"}, {"doc": "Read the end of file marker. Returns true if read successfully.", "kind": "function", "line": 1418, "name": "P_ReadSaveGameEOF", "signature": "boolean P_ReadSaveGameEOF(void)"}, {"doc": "Write the end of file marker", "kind": "function", "line": 1431, "name": "P_WriteSaveGameEOF", "signature": "void P_WriteSaveGameEOF(void)"}, {"doc": "P_ArchivePlayers", "kind": "function", "line": 1440, "name": "P_ArchivePlayers", "signature": "void P_ArchivePlayers (void)"}, {"doc": "P_UnArchivePlayers", "kind": "function", "line": 1460, "name": "P_UnArchivePlayers", "signature": "void P_UnArchivePlayers (void)"}, {"doc": "P_ArchiveWorld", "kind": "function", "line": 1484, "name": "P_ArchiveWorld", "signature": "void P_ArchiveWorld (void)"}, {"doc": "P_UnArchiveWorld", "kind": "function", "line": 1532, "name": "P_UnArchiveWorld", "signature": "void P_UnArchiveWorld (void)"}, {"doc": "P_ArchiveThinkers", "kind": "function", "line": 1592, "name": "P_ArchiveThinkers", "signature": "void P_ArchiveThinkers (void)"}, {"doc": "P_UnArchiveThinkers", "kind": "function", "line": 1620, "name": "P_UnArchiveThinkers", "signature": "void P_UnArchiveThinkers (void)"}, {"doc": "Things to handle: T_MoveCeiling, (ceiling_t: sector_t * swizzle), - active list T_VerticalDoor, (vldoor_t: sector_t * swizzle), T_MoveFloor, (floormove_t: sector_t * swizzle), T_LightFlash, (lightflash_t: sector_t * swizzle), T_StrobeFlash, (strobe_t: sector_t *), T_Glow, (glow_t: sector_t *), T_PlatRaise, (plat_t: sector_t *), - active list", "kind": "function", "line": 1704, "name": "P_ArchiveSpecials", "signature": "void P_ArchiveSpecials (void)"}, {"doc": "P_UnArchiveSpecials", "kind": "function", "line": 1793, "name": "P_UnArchiveSpecials", "signature": "void P_UnArchiveSpecials (void)"}, {"kind": "macro", "line": 35, "name": "SAVEGAME_EOF"}, {"kind": "macro", "line": 37, "name": "VERSIONSIZE"}, {"kind": "macro", "line": 196, "name": "saveg_read_enum"}, {"kind": "macro", "line": 198, "name": "saveg_write_enum"}, {"kind": "macro", "line": 265, "name": "saveg_read_think_t"}, {"kind": "macro", "line": 267, "name": "saveg_write_think_t"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Savegame I/O, archiving, persistence. ifndef __P_SAVEG__ define __P_SAVEG__ include maximum size of a savegame description define SAVESTRINGSIZE 24 temporary filename to use while saving.", "id": "progs/doomgeneric/p_saveg.h", "kind": "module", "label": "p_saveg.h", "language": "h", "sha256": "df574e1d11870a4b", "symbol_count": 2, "symbols": [{"kind": "macro", "line": 21, "name": "__P_SAVEG__"}, {"kind": "macro", "line": 26, "name": "SAVESTRINGSIZE"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Do all the WAD I/O, get map description, set up initial state and misc. LUTs. include include \"z_zone.h\" include \"deh_main.h\" include \"i_swap.h\" include \"m_argv.h\" include \"m_bbox.h\"", "id": "progs/doomgeneric/p_setup.c", "kind": "module", "label": "p_setup.c", "language": "c", "sha256": "4494c8823c82ad30", "symbol_count": 16, "symbols": [{"doc": "P_LoadVertexes", "kind": "function", "line": 118, "name": "P_LoadVertexes", "signature": "void P_LoadVertexes (int lump)"}, {"doc": "GetSectorAtNullAddress", "kind": "function", "line": 153, "name": "GetSectorAtNullAddress", "signature": "sector_t* GetSectorAtNullAddress(void)"}, {"doc": "P_LoadSegs", "kind": "function", "line": 172, "name": "P_LoadSegs", "signature": "void P_LoadSegs (int lump)"}, {"doc": "P_LoadSubsectors", "kind": "function", "line": 236, "name": "P_LoadSubsectors", "signature": "void P_LoadSubsectors (int lump)"}, {"doc": "P_LoadSectors", "kind": "function", "line": 265, "name": "P_LoadSectors", "signature": "void P_LoadSectors (int lump)"}, {"doc": "P_LoadNodes", "kind": "function", "line": 298, "name": "P_LoadNodes", "signature": "void P_LoadNodes (int lump)"}, {"doc": "P_LoadThings", "kind": "function", "line": 335, "name": "P_LoadThings", "signature": "void P_LoadThings (int lump)"}, {"doc": "P_LoadLineDefs Also counts secret lines for intermissions.", "kind": "function", "line": 392, "name": "P_LoadLineDefs", "signature": "void P_LoadLineDefs (int lump)"}, {"doc": "P_LoadSideDefs", "kind": "function", "line": 473, "name": "P_LoadSideDefs", "signature": "void P_LoadSideDefs (int lump)"}, {"doc": "P_LoadBlockMap", "kind": "function", "line": 504, "name": "P_LoadBlockMap", "signature": "void P_LoadBlockMap (int lump)"}, {"doc": "P_GroupLines Builds sector line lists and subsector sector numbers. Finds block bounding boxes for sectors.", "kind": "function", "line": 545, "name": "P_GroupLines", "signature": "void P_GroupLines (void)"}, {"doc": "Pad the REJECT lump with extra data when the lump is too small, to simulate a REJECT buffer overflow in Vanilla Doom.", "kind": "function", "line": 660, "name": "PadRejectArray", "signature": "static void PadRejectArray(byte *array, unsigned int len)"}, {"kind": "function", "line": 711, "name": "P_LoadReject", "signature": "static void P_LoadReject(int lumpnum)"}, {"doc": "P_SetupLevel", "kind": "function", "line": 743, "name": "P_SetupLevel", "signature": "void\nP_SetupLevel\n( int\t\tepisode,\n int\t\tmap,\n int\t\tplayermask,\n skill_t\tskill)"}, {"doc": "P_Init", "kind": "function", "line": 847, "name": "P_Init", "signature": "void P_Init (void)"}, {"kind": "macro", "line": 105, "name": "MAX_DEATHMATCH_STARTS"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Setup a game, startup stuff. ifndef __P_SETUP__ define __P_SETUP__ NOT called by W_Ticker. Fixme.", "id": "progs/doomgeneric/p_setup.h", "kind": "module", "label": "p_setup.h", "language": "h", "sha256": "9ad381578510f3f9", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__P_SETUP__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: LineOfSight/Visibility checks, uses REJECT Lookup Table. include \"doomdef.h\" include \"i_system.h\" include \"p_local.h\" State. include \"r_state.h\" P_CheckSight", "id": "progs/doomgeneric/p_sight.c", "kind": "module", "label": "p_sight.c", "language": "c", "sha256": "38541f33f92df8e7", "symbol_count": 5, "symbols": [{"doc": "P_DivlineSide Returns side 0 (front), 1 (back), or 2 (on).", "kind": "function", "line": 47, "name": "P_DivlineSide", "signature": "int\nP_DivlineSide\n( fixed_t\tx,\n fixed_t\ty,\n divline_t*\tnode )"}, {"doc": "P_InterceptVector2 Returns the fractional intercept point along the first divline. This is only called by the addthings and addlines traversers.", "kind": "function", "line": 101, "name": "P_InterceptVector2", "signature": "fixed_t\nP_InterceptVector2\n( divline_t*\tv2,\n divline_t*\tv1 )"}, {"doc": "P_CrossSubsector Returns true if strace crosses the given subsector successfully.", "kind": "function", "line": 128, "name": "P_CrossSubsector", "signature": "boolean P_CrossSubsector (int num)"}, {"doc": "P_CrossBSPNode Returns true if strace crosses the given node successfully.", "kind": "function", "line": 258, "name": "P_CrossBSPNode", "signature": "boolean P_CrossBSPNode (int bspnum)"}, {"doc": "P_CheckSight Returns true if a straight line between t1 and t2 is unobstructed. Uses REJECT.", "kind": "function", "line": 300, "name": "P_CheckSight", "signature": "boolean\nP_CheckSight\n( mobj_t*\tt1,\n mobj_t*\tt2 )"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Implements special effects: Texture animation, height or lighting changes according to adjacent sectors, respective utility functions, etc. Line Tag handling. Line and Sector triggers. include include \"doomdef.h\" include \"doomstat.h\" include \"deh_main.h\" include \"i_system.h\"", "id": "progs/doomgeneric/p_spec.c", "kind": "module", "label": "p_spec.c", "language": "c", "sha256": "48092c8d986aa0c3", "symbol_count": 24, "symbols": [{"kind": "function", "line": 140, "name": "P_InitPicAnims", "signature": "void P_InitPicAnims (void)"}, {"doc": "getSide() Will return a side_t* given the number of the current sector, the line number, and the side (0/1) that you want.", "kind": "function", "line": 202, "name": "getSide", "signature": "side_t*\ngetSide\n( int\t\tcurrentSector,\n int\t\tline,\n int\t\tside )"}, {"doc": "getSector() Will return a sector_t* given the number of the current sector, the line number and the side (0/1) that you want.", "kind": "function", "line": 218, "name": "getSector", "signature": "sector_t*\ngetSector\n( int\t\tcurrentSector,\n int\t\tline,\n int\t\tside )"}, {"doc": "twoSided() Given the sector number and the line number, it will tell you whether the line is two-sided or not.", "kind": "function", "line": 233, "name": "twoSided", "signature": "int\ntwoSided\n( int\tsector,\n int\tline )"}, {"doc": "getNextSector() Return sector_t * of sector next to current. NULL if not two-sided line", "kind": "function", "line": 249, "name": "getNextSector", "signature": "sector_t*\ngetNextSector\n( line_t*\tline,\n sector_t*\tsec )"}, {"doc": "P_FindLowestFloorSurrounding() FIND LOWEST FLOOR HEIGHT IN SURROUNDING SECTORS", "kind": "function", "line": 269, "name": "P_FindLowestFloorSurrounding", "signature": "fixed_t\tP_FindLowestFloorSurrounding(sector_t* sec)"}, {"doc": "P_FindHighestFloorSurrounding() FIND HIGHEST FLOOR HEIGHT IN SURROUNDING SECTORS", "kind": "function", "line": 296, "name": "P_FindHighestFloorSurrounding", "signature": "fixed_t\tP_FindHighestFloorSurrounding(sector_t *sec)"}, {"doc": "20 adjoining sectors max! define MAX_ADJOINING_SECTORS 20", "kind": "function", "line": 328, "name": "P_FindNextHighestFloor", "signature": "fixed_t\nP_FindNextHighestFloor\n( sector_t* sec,\n int currentheight )"}, {"doc": "FIND LOWEST CEILING IN THE SURROUNDING SECTORS", "kind": "function", "line": 391, "name": "P_FindLowestCeilingSurrounding", "signature": "fixed_t\nP_FindLowestCeilingSurrounding(sector_t* sec)"}, {"doc": "FIND HIGHEST CEILING IN THE SURROUNDING SECTORS", "kind": "function", "line": 417, "name": "P_FindHighestCeilingSurrounding", "signature": "fixed_t\tP_FindHighestCeilingSurrounding(sector_t* sec)"}, {"doc": "RETURN NEXT SECTOR # THAT LINE TAG REFERS TO", "kind": "function", "line": 443, "name": "P_FindSectorFromLineTag", "signature": "int\nP_FindSectorFromLineTag\n( line_t*\tline,\n int\t\tstart )"}, {"doc": "Find minimum light from an adjacent sector", "kind": "function", "line": 463, "name": "P_FindMinSurroundingLight", "signature": "int\nP_FindMinSurroundingLight\n( sector_t*\tsector,\n int\t\tmax )"}, {"doc": "P_CrossSpecialLine - TRIGGER Called every time a thing origin is about to cross a line with a non 0 special.", "kind": "function", "line": 501, "name": "P_CrossSpecialLine", "signature": "void\nP_CrossSpecialLine\n( int\t\tlinenum,\n int\t\tside,\n mobj_t*\tthing )"}, {"doc": "P_ShootSpecialLine - IMPACT SPECIALS Called when a thing shoots a special line.", "kind": "function", "line": 968, "name": "P_ShootSpecialLine", "signature": "void\nP_ShootSpecialLine\n( mobj_t*\tthing,\n line_t*\tline )"}, {"doc": "P_PlayerInSpecialSector Called every tic frame that the player origin is in a special sector", "kind": "function", "line": 1019, "name": "P_PlayerInSpecialSector", "signature": "void P_PlayerInSpecialSector (player_t* player)"}, {"kind": "function", "line": 1092, "name": "P_UpdateSpecials", "signature": "void P_UpdateSpecials (void)"}, {"doc": "define DONUT_FLOORHEIGHT_DEFAULT 0x00000000 define DONUT_FLOORPIC_DEFAULT 0x16", "kind": "function", "line": 1177, "name": "DonutOverrun", "signature": "static void DonutOverrun(fixed_t *s3_floorheight, short *s3_floorpic,\n li..."}, {"doc": "Special Stuff that can not be categorized", "kind": "function", "line": 1257, "name": "EV_DoDonut", "signature": "int EV_DoDonut(line_t*\tline)"}, {"doc": "Parses command line parameters.", "kind": "function", "line": 1374, "name": "P_SpawnSpecials", "signature": "void P_SpawnSpecials (void)"}, {"kind": "macro", "line": 75, "name": "MAXANIMS"}, {"kind": "macro", "line": 136, "name": "MAXLINEANIMS"}, {"kind": "macro", "line": 327, "name": "MAX_ADJOINING_SECTORS"}, {"kind": "macro", "line": 1174, "name": "DONUT_FLOORHEIGHT_DEFAULT"}, {"kind": "macro", "line": 1176, "name": "DONUT_FLOORPIC_DEFAULT"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: none Implements special effects: Texture animation, height or lighting changes according to adjacent sectors, respective utility functions, etc. ifndef __P_SPEC__ define __P_SPEC__ End-level timer (-TIMER option)", "id": "progs/doomgeneric/p_spec.h", "kind": "module", "label": "p_spec.h", "language": "h", "sha256": "ade229c799b9c2da", "symbol_count": 22, "symbols": [{"kind": "macro", "line": 24, "name": "__P_SPEC__"}, {"kind": "macro", "line": 35, "name": "MO_TELEPORTMAN"}, {"kind": "macro", "line": 171, "name": "GLOWSPEED"}, {"kind": "macro", "line": 174, "name": "STROBEBRIGHT"}, {"kind": "macro", "line": 175, "name": "FASTDARK"}, {"kind": "macro", "line": 176, "name": "SLOWDARK"}, {"kind": "macro", "line": 238, "name": "MAXSWITCHES"}, {"kind": "macro", "line": 241, "name": "MAXBUTTONS"}, {"kind": "macro", "line": 244, "name": "BUTTONTIME"}, {"kind": "macro", "line": 298, "name": "PLATWAIT"}, {"kind": "macro", "line": 302, "name": "PLATSPEED"}, {"kind": "macro", "line": 303, "name": "MAXPLATS"}, {"kind": "macro", "line": 358, "name": "VDOORSPEED"}, {"kind": "macro", "line": 362, "name": "VDOORWAIT"}, {"kind": "macro", "line": 456, "name": "SNUMFRAMES"}, {"kind": "macro", "line": 457, "name": "SDOORWAIT"}, {"kind": "macro", "line": 459, "name": "SWAITTICS"}, {"kind": "macro", "line": 462, "name": "MAXSLIDEDOORS"}, {"kind": "macro", "line": 508, "name": "CEILSPEED"}, {"kind": "macro", "line": 514, "name": "CEILWAIT"}, {"kind": "macro", "line": 515, "name": "MAXCEILINGS"}, {"kind": "macro", "line": 594, "name": "FLOORSPEED"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Switches, buttons. Two-state animation. Exits. include include \"i_system.h\" include \"deh_main.h\" include \"doomdef.h\" include \"p_local.h\" include \"g_game.h\" include \"s_sound.h\"", "id": "progs/doomgeneric/p_switch.c", "kind": "module", "label": "p_switch.c", "language": "c", "sha256": "ddb09f54244cc0a0", "symbol_count": 4, "symbols": [{"doc": "P_InitSwitchList Only called at game initialization.", "kind": "function", "line": 101, "name": "P_InitSwitchList", "signature": "void P_InitSwitchList(void)"}, {"doc": "Start a button counting down till it turns off.", "kind": "function", "line": 148, "name": "P_StartButton", "signature": "void\nP_StartButton\n( line_t*\tline,\n bwhere_e\tw,\n int\t\ttexture,\n int\t\ttime )"}, {"doc": "Function that changes wall texture. Tell it if switch is ok to use again (1=yes, it's a button).", "kind": "function", "line": 194, "name": "P_ChangeSwitchTexture", "signature": "void\nP_ChangeSwitchTexture\n( line_t*\tline,\n int \t\tuseAgain )"}, {"doc": "P_UseSpecialLine Called when a thing uses a special line. Only the front sides of lines are usable.", "kind": "function", "line": 269, "name": "P_UseSpecialLine", "signature": "boolean\nP_UseSpecialLine\n( mobj_t*\tthing,\n line_t*\tline,\n int\t\tside )"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Teleportation. include \"doomdef.h\" include \"doomstat.h\" include \"s_sound.h\" include \"p_local.h\" Data.", "id": "progs/doomgeneric/p_telept.c", "kind": "module", "label": "p_telept.c", "language": "c", "sha256": "e7221c20bfb156ce", "symbol_count": 1, "symbols": [{"doc": "TELEPORTATION", "kind": "function", "line": 41, "name": "EV_Teleport", "signature": "int\nEV_Teleport\n( line_t*\tline,\n int\t\tside,\n mobj_t*\tthing )"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Archiving: SaveGame I/O. Thinker, Ticker. include \"z_zone.h\" include \"p_local.h\" include \"doomstat.h\"", "id": "progs/doomgeneric/p_tick.c", "kind": "module", "label": "p_tick.c", "language": "c", "sha256": "3a30587883e837d2", "symbol_count": 6, "symbols": [{"doc": "P_InitThinkers", "kind": "function", "line": 46, "name": "P_InitThinkers", "signature": "void P_InitThinkers (void)"}, {"doc": "P_AddThinker Adds a new thinker at the end of the list.", "kind": "function", "line": 58, "name": "P_AddThinker", "signature": "void P_AddThinker (thinker_t* thinker)"}, {"doc": "P_RemoveThinker Deallocation is lazy -- it will not actually be freed until its thinking turn comes up.", "kind": "function", "line": 73, "name": "P_RemoveThinker", "signature": "void P_RemoveThinker (thinker_t* thinker)"}, {"doc": "P_AllocateThinker Allocates memory and adds a new thinker at the end of the list.", "kind": "function", "line": 85, "name": "P_AllocateThinker", "signature": "void P_AllocateThinker (thinker_t*\tthinker)"}, {"doc": "P_RunThinkers", "kind": "function", "line": 94, "name": "P_RunThinkers", "signature": "void P_RunThinkers (void)"}, {"doc": "P_Ticker", "kind": "function", "line": 122, "name": "P_Ticker", "signature": "void P_Ticker (void)"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: ? ifndef __P_TICK__ define __P_TICK__ Called by C_Ticker, can call G_PlayerExited. Carries out all thinking of monsters and players.", "id": "progs/doomgeneric/p_tick.h", "kind": "module", "label": "p_tick.h", "language": "h", "sha256": "f507c3ce538d9ecd", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__P_TICK__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Player related stuff. Bobbing POV/weapon, movement. Pending weapon. include \"doomdef.h\" include \"d_event.h\" include \"p_local.h\" include \"doomstat.h\"", "id": "progs/doomgeneric/p_user.c", "kind": "module", "label": "p_user.c", "language": "c", "sha256": "344ca6c3f051a806", "symbol_count": 8, "symbols": [{"doc": "P_Thrust Moves the given origin along a given angle.", "kind": "function", "line": 51, "name": "P_Thrust", "signature": "void\nP_Thrust\n( player_t*\tplayer,\n angle_t\tangle,\n fixed_t\tmove )"}, {"doc": "P_CalcHeight Calculate the walking / running height adjustment", "kind": "function", "line": 70, "name": "P_CalcHeight", "signature": "void P_CalcHeight (player_t* player)"}, {"doc": "P_MovePlayer", "kind": "function", "line": 141, "name": "P_MovePlayer", "signature": "void P_MovePlayer (player_t* player)"}, {"doc": "P_DeathThink Fall on your face when dying. Decrease POV height to floor height. define ANG5 \t(ANG90/18)", "kind": "function", "line": 174, "name": "P_DeathThink", "signature": "void P_DeathThink (player_t* player)"}, {"doc": "P_PlayerThink", "kind": "function", "line": 229, "name": "P_PlayerThink", "signature": "void P_PlayerThink (player_t* player)"}, {"kind": "macro", "line": 34, "name": "INVERSECOLORMAP"}, {"kind": "macro", "line": 42, "name": "MAXBOB"}, {"kind": "macro", "line": 173, "name": "ANG5"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: BSP traversal, handling of LineSegs for rendering. include \"doomdef.h\" include \"m_bbox.h\" include \"i_system.h\" include \"r_main.h\" include \"r_plane.h\" include \"r_things.h\"", "id": "progs/doomgeneric/r_bsp.c", "kind": "module", "label": "r_bsp.c", "language": "c", "sha256": "f3cca21969db9723", "symbol_count": 9, "symbols": [{"doc": "R_ClearDrawSegs", "kind": "function", "line": 61, "name": "R_ClearDrawSegs", "signature": "void R_ClearDrawSegs (void)"}, {"doc": "R_ClipSolidWallSegment Does handle solid walls, e.g. single sided LineDefs (middle texture) that entirely block the view.", "kind": "function", "line": 96, "name": "R_ClipSolidWallSegment", "signature": "void\nR_ClipSolidWallSegment\n( int\t\t\tfirst,\n int\t\t\tlast )"}, {"doc": "R_ClipPassWallSegment Clips the given range of columns, but does not includes it in the clip list. Does handle windows, e.g. LineDefs with upper and lower texture.", "kind": "function", "line": 189, "name": "R_ClipPassWallSegment", "signature": "void\nR_ClipPassWallSegment\n( int\tfirst,\n int\tlast )"}, {"doc": "R_ClearClipSegs", "kind": "function", "line": 238, "name": "R_ClearClipSegs", "signature": "void R_ClearClipSegs (void)"}, {"doc": "R_AddLine Clips the given segment and adds any visible pieces to the line list.", "kind": "function", "line": 252, "name": "R_AddLine", "signature": "void R_AddLine (seg_t*\tline)"}, {"kind": "function", "line": 372, "name": "R_CheckBBox", "signature": "boolean R_CheckBBox (fixed_t*\tbspcoord)"}, {"doc": "R_Subsector Determine floor/ceiling planes. Add sprites of things in sector. Draw one or more line segments.", "kind": "function", "line": 490, "name": "R_Subsector", "signature": "void R_Subsector (int num)"}, {"doc": "RenderBSPNode Renders all subsectors below a given node, traversing subtree recursively. Just call with BSP root.", "kind": "function", "line": 545, "name": "R_RenderBSPNode", "signature": "void R_RenderBSPNode (int bspnum)"}, {"kind": "macro", "line": 79, "name": "MAXSEGS"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Refresh module, BSP traversal and handling. ifndef __R_BSP__ define __R_BSP__", "id": "progs/doomgeneric/r_bsp.h", "kind": "module", "label": "r_bsp.h", "language": "h", "sha256": "2b21f039863888ed", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__R_BSP__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Preparation of data for rendering, generation of lookups, caching, retrieval by name. include include \"deh_main.h\" include \"i_swap.h\" include \"i_system.h\" include \"z_zone.h\" include \"w_wad.h\" include \"doomdef.h\"", "id": "progs/doomgeneric/r_data.c", "kind": "module", "label": "r_data.c", "language": "c", "sha256": "1fe2527d5e09951f", "symbol_count": 15, "symbols": [{"kind": "struct", "line": 106, "name": "texture_s"}, {"doc": "R_DrawColumnInCache Clip and draw a column from a patch into a cached post.", "kind": "function", "line": 185, "name": "R_DrawColumnInCache", "signature": "void\nR_DrawColumnInCache\n( column_t*\tpatch,\n byte*\t\tcache,\n int\t\toriginy,\n int\t\tcacheheight )"}, {"doc": "R_GenerateComposite Using the texture definition, the composite texture is created from the patches, and each column is cached.", "kind": "function", "line": 226, "name": "R_GenerateComposite", "signature": "void R_GenerateComposite (int texnum)"}, {"doc": "R_GenerateLookup", "kind": "function", "line": 294, "name": "R_GenerateLookup", "signature": "void R_GenerateLookup (int texnum)"}, {"doc": "R_GetColumn", "kind": "function", "line": 382, "name": "R_GetColumn", "signature": "byte*\nR_GetColumn\n( int\t\ttex,\n int\t\tcol )"}, {"kind": "function", "line": 402, "name": "GenerateTextureHashTable", "signature": "static void GenerateTextureHashTable(void)"}, {"doc": "R_InitTextures Initializes the texture list with the textures from the world map.", "kind": "function", "line": 451, "name": "R_InitTextures", "signature": "void R_InitTextures (void)"}, {"doc": "R_InitFlats", "kind": "function", "line": 633, "name": "R_InitFlats", "signature": "void R_InitFlats (void)"}, {"doc": "R_InitSpriteLumps Finds the width and hoffset of all sprites in the wad, so the sprite does not need to be cached completely just for having the header info ready during rendering.", "kind": "function", "line": 655, "name": "R_InitSpriteLumps", "signature": "void R_InitSpriteLumps (void)"}, {"doc": "R_InitColormaps", "kind": "function", "line": 685, "name": "R_InitColormaps", "signature": "void R_InitColormaps (void)"}, {"doc": "R_InitData Locates all the lumps that will be used by all views Must be called after W_Init.", "kind": "function", "line": 703, "name": "R_InitData", "signature": "void R_InitData (void)"}, {"doc": "R_FlatNumForName Retrieval, get a flat number for a flat name.", "kind": "function", "line": 720, "name": "R_FlatNumForName", "signature": "int R_FlatNumForName (char* name)"}, {"doc": "R_CheckTextureNumForName Check whether texture is available. Filter out NoTexture indicator.", "kind": "function", "line": 744, "name": "R_CheckTextureNumForName", "signature": "int\tR_CheckTextureNumForName (char *name)"}, {"doc": "R_TextureNumForName Calls R_CheckTextureNumForName, aborts with error message.", "kind": "function", "line": 775, "name": "R_TextureNumForName", "signature": "int\tR_TextureNumForName (char* name)"}, {"kind": "function", "line": 799, "name": "R_PrecacheLevel", "signature": "void R_PrecacheLevel (void)"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Refresh module, data I/O, caching, retrieval of graphics by name. ifndef __R_DATA__ define __R_DATA__ include \"r_defs.h\" include \"r_state.h\" Retrieve column data for span blitting.", "id": "progs/doomgeneric/r_data.h", "kind": "module", "label": "r_data.h", "language": "h", "sha256": "3f2d5ed860b88ce8", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 22, "name": "__R_DATA__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Refresh/rendering module, shared data struct definitions. ifndef __R_DEFS__ define __R_DEFS__ Screenwidth. include \"doomdef.h\" Some more or less basic data types we depend on. include \"m_fixed.h\"", "id": "progs/doomgeneric/r_defs.h", "kind": "module", "label": "r_defs.h", "language": "h", "sha256": "c0adc39003b999d0", "symbol_count": 11, "symbols": [{"doc": "Forward of LineDefs, for Sectors.", "kind": "struct", "line": 76, "name": "line_s"}, {"kind": "struct", "line": 175, "name": "line_s"}, {"doc": "A SubSector. References a Sector. Basically, this is a list of LineSegs, indicating the visible walls that define (all or some) sides of a convex BSP leaf.", "kind": "struct", "line": 223, "name": "subsector_s"}, {"doc": "?", "kind": "struct", "line": 306, "name": "drawseg_s"}, {"doc": "A vissprite_t is a thing that will be drawn during a refresh. I.e. a sprite object that is partly visible.", "kind": "struct", "line": 338, "name": "vissprite_s"}, {"kind": "macro", "line": 21, "name": "__R_DEFS__"}, {"kind": "macro", "line": 46, "name": "SIL_NONE"}, {"kind": "macro", "line": 47, "name": "SIL_BOTTOM"}, {"kind": "macro", "line": 48, "name": "SIL_TOP"}, {"kind": "macro", "line": 49, "name": "SIL_BOTH"}, {"kind": "macro", "line": 50, "name": "MAXDRAWSEGS"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: The actual span/column drawing functions. Here find the main potential for optimization, e.g. inline assembly, different algorithms. include \"doomdef.h\" include \"deh_main.h\" include \"i_system.h\" include \"z_zone.h\" include \"w_wad.h\"", "id": "progs/doomgeneric/r_draw.c", "kind": "module", "label": "r_draw.c", "language": "c", "sha256": "4dd895d535fec9ca", "symbol_count": 20, "symbols": [{"doc": "A column is a vertical slice/span from a wall texture that, given the DOOM style restrictions on the view orientation, will always have constant z depth. Thus a special case loop for very fast rendering can be used. It has also been used with Wolfenstein 3D.", "kind": "function", "line": 102, "name": "R_DrawColumn", "signature": "void R_DrawColumn (void)"}, {"doc": "UNUSED. Loop unrolled. if 0", "kind": "function", "line": 152, "name": "R_DrawColumn", "signature": "void R_DrawColumn (void)"}, {"doc": "endif", "kind": "function", "line": 206, "name": "R_DrawColumnLow", "signature": "void R_DrawColumnLow (void)"}, {"doc": "Framebuffer postprocessing. Creates a fuzzy image by copying pixels from adjacent ones to left and right. Used with an all black colormap, this could create the SHADOW effect, i.e. spectres and invisible players.", "kind": "function", "line": 283, "name": "R_DrawFuzzColumn", "signature": "void R_DrawFuzzColumn (void)"}, {"doc": "low detail mode version", "kind": "function", "line": 341, "name": "R_DrawFuzzColumnLow", "signature": "void R_DrawFuzzColumnLow (void)"}, {"kind": "function", "line": 423, "name": "R_DrawTranslatedColumn", "signature": "void R_DrawTranslatedColumn (void)"}, {"kind": "function", "line": 467, "name": "R_DrawTranslatedColumnLow", "signature": "void R_DrawTranslatedColumnLow (void)"}, {"doc": "R_InitTranslationTables Creates the translation tables to map the green color ramp to gray, brown, red. Assumes a given structure of the PLAYPAL. Could be read from a lump instead.", "kind": "function", "line": 530, "name": "R_InitTranslationTables", "signature": "void R_InitTranslationTables (void)"}, {"doc": "Draws the actual span.", "kind": "function", "line": 590, "name": "R_DrawSpan", "signature": "void R_DrawSpan (void)"}, {"doc": "UNUSED. Loop unrolled by 4. if 0", "kind": "function", "line": 646, "name": "R_DrawSpan", "signature": "void R_DrawSpan (void)"}, {"doc": "Again..", "kind": "function", "line": 719, "name": "R_DrawSpanLow", "signature": "void R_DrawSpanLow (void)"}, {"doc": "R_InitBuffer Creats lookup tables that avoid multiplies and other hazzles for getting the framebuffer address of a pixel to draw.", "kind": "function", "line": 776, "name": "R_InitBuffer", "signature": "void\nR_InitBuffer\n( int\t\twidth,\n int\t\theight )"}, {"doc": "R_FillBackScreen Fills the back screen with a pattern for variable screen sizes Also draws a beveled edge.", "kind": "function", "line": 812, "name": "R_FillBackScreen", "signature": "void R_FillBackScreen (void)"}, {"doc": "Copy a screen buffer.", "kind": "function", "line": 918, "name": "R_VideoErase", "signature": "void\nR_VideoErase\n( unsigned\tofs,\n int\t\tcount )"}, {"doc": "R_DrawViewBorder Draws the border around the view for different size windows?", "kind": "function", "line": 941, "name": "R_DrawViewBorder", "signature": "void R_DrawViewBorder (void)"}, {"kind": "macro", "line": 41, "name": "MAXWIDTH"}, {"kind": "macro", "line": 42, "name": "MAXHEIGHT"}, {"kind": "macro", "line": 45, "name": "SBARHEIGHT"}, {"kind": "macro", "line": 257, "name": "FUZZTABLE"}, {"kind": "macro", "line": 258, "name": "FUZZOFF"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: System specific interface stuff. ifndef __R_DRAW__ define __R_DRAW__", "id": "progs/doomgeneric/r_draw.h", "kind": "module", "label": "r_draw.h", "language": "h", "sha256": "ae74309c90e0e5a7", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__R_DRAW__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Refresh (R_*) module, global header. All the rendering/drawing stuff is here. ifndef __R_LOCAL__ define __R_LOCAL__ Binary Angles, sine/cosine/atan lookups. include \"tables.h\" Screen size related parameters. include \"doomdef.h\" Include the refresh/render data structs. include \"r_data.h\"", "id": "progs/doomgeneric/r_local.h", "kind": "module", "label": "r_local.h", "language": "h", "sha256": "e957f7e74dcbff58", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__R_LOCAL__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Rendering main loop and setup functions, utility functions (BSP, geometry, trigonometry). See tables.c, too. include include include \"doomdef.h\" include \"d_loop.h\"", "id": "progs/doomgeneric/r_main.c", "kind": "module", "label": "r_main.c", "language": "c", "sha256": "ba9b91175144c619", "symbol_count": 19, "symbols": [{"doc": "R_AddPointToBox Expand a given bbox so that it encloses a given point.", "kind": "function", "line": 122, "name": "R_AddPointToBox", "signature": "void\nR_AddPointToBox\n( int\t\tx,\n int\t\ty,\n fixed_t*\tbox )"}, {"doc": "R_PointOnSide Traverse BSP (sub) tree, check point against partition plane. Returns side 0 (front) or 1 (back).", "kind": "function", "line": 145, "name": "R_PointOnSide", "signature": "int\nR_PointOnSide\n( fixed_t\tx,\n fixed_t\ty,\n node_t*\tnode )"}, {"kind": "function", "line": 196, "name": "R_PointOnSegSide", "signature": "int\nR_PointOnSegSide\n( fixed_t\tx,\n fixed_t\ty,\n seg_t*\tline )"}, {"kind": "function", "line": 271, "name": "R_PointToAngle", "signature": "angle_t\nR_PointToAngle\n( fixed_t\tx,\n fixed_t\ty )"}, {"kind": "function", "line": 359, "name": "R_PointToAngle2", "signature": "angle_t\nR_PointToAngle2\n( fixed_t\tx1,\n fixed_t\ty1,\n fixed_t\tx2,\n fixed_t\ty2 )"}, {"kind": "function", "line": 373, "name": "R_PointToDist", "signature": "fixed_t\nR_PointToDist\n( fixed_t\tx,\n fixed_t\ty )"}, {"doc": "R_InitPointToAngle", "kind": "function", "line": 422, "name": "R_InitPointToAngle", "signature": "void R_InitPointToAngle (void)"}, {"doc": "R_ScaleFromGlobalAngle Returns the texture mapping scale for the current line (horizontal span) at the given angle. rw_distance must be calculated first.", "kind": "function", "line": 449, "name": "R_ScaleFromGlobalAngle", "signature": "fixed_t R_ScaleFromGlobalAngle (angle_t visangle)"}, {"doc": "R_InitTables", "kind": "function", "line": 505, "name": "R_InitTables", "signature": "void R_InitTables (void)"}, {"doc": "R_InitTextureMapping", "kind": "function", "line": 540, "name": "R_InitTextureMapping", "signature": "void R_InitTextureMapping (void)"}, {"doc": "R_InitLightTables Only inits the zlight table, because the scalelight table changes with view size. define DISTMAP\t\t2", "kind": "function", "line": 609, "name": "R_InitLightTables", "signature": "void R_InitLightTables (void)"}, {"kind": "function", "line": 651, "name": "R_SetViewSize", "signature": "void\nR_SetViewSize\n( int\t\tblocks,\n int\t\tdetail )"}, {"doc": "R_ExecuteSetViewSize", "kind": "function", "line": 667, "name": "R_ExecuteSetViewSize", "signature": "void R_ExecuteSetViewSize (void)"}, {"doc": "R_Init", "kind": "function", "line": 764, "name": "R_Init", "signature": "void R_Init (void)"}, {"doc": "R_PointInSubsector", "kind": "function", "line": 793, "name": "R_PointInSubsector", "signature": "subsector_t*\nR_PointInSubsector\n( fixed_t\tx,\n fixed_t\ty )"}, {"doc": "R_SetupFrame", "kind": "function", "line": 823, "name": "R_SetupFrame", "signature": "void R_SetupFrame (player_t* player)"}, {"doc": "R_RenderView", "kind": "function", "line": 863, "name": "R_RenderPlayerView", "signature": "void R_RenderPlayerView (player_t* player)"}, {"kind": "macro", "line": 43, "name": "FIELDOFVIEW"}, {"kind": "macro", "line": 608, "name": "DISTMAP"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: System specific interface stuff. ifndef __R_MAIN__ define __R_MAIN__ include \"d_player.h\" include \"r_data.h\" POV related.", "id": "progs/doomgeneric/r_main.h", "kind": "module", "label": "r_main.h", "language": "h", "sha256": "7f3fc133ec079dce", "symbol_count": 8, "symbols": [{"kind": "macro", "line": 21, "name": "__R_MAIN__"}, {"kind": "macro", "line": 61, "name": "LIGHTLEVELS"}, {"kind": "macro", "line": 62, "name": "LIGHTSEGSHIFT"}, {"kind": "macro", "line": 63, "name": "MAXLIGHTSCALE"}, {"kind": "macro", "line": 65, "name": "LIGHTSCALESHIFT"}, {"kind": "macro", "line": 66, "name": "MAXLIGHTZ"}, {"kind": "macro", "line": 67, "name": "LIGHTZSHIFT"}, {"kind": "macro", "line": 79, "name": "NUMCOLORMAPS"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Here is a core component: drawing the floors and ceilings, while maintaining a per column clipping list only. Moreover, the sky areas have to be determined. include include include \"i_system.h\" include \"z_zone.h\" include \"w_wad.h\" include \"doomdef.h\" include \"doomstat.h\"", "id": "progs/doomgeneric/r_plane.c", "kind": "module", "label": "r_plane.c", "language": "c", "sha256": "0491f8aba11f68d3", "symbol_count": 9, "symbols": [{"doc": "R_InitPlanes Only at game startup.", "kind": "function", "line": 94, "name": "R_InitPlanes", "signature": "void R_InitPlanes (void)"}, {"doc": "R_MapPlane Uses global vars: planeheight ds_source basexscale baseyscale viewx viewy BASIC PRIMITIVE", "kind": "function", "line": 113, "name": "R_MapPlane", "signature": "void\nR_MapPlane\n( int\t\ty,\n int\t\tx1,\n int\t\tx2 )"}, {"doc": "R_ClearPlanes At begining of frame.", "kind": "function", "line": 178, "name": "R_ClearPlanes", "signature": "void R_ClearPlanes (void)"}, {"doc": "R_FindPlane", "kind": "function", "line": 210, "name": "R_FindPlane", "signature": "visplane_t*\nR_FindPlane\n( fixed_t\theight,\n int\t\tpicnum,\n int\t\tlightlevel )"}, {"doc": "R_CheckPlane", "kind": "function", "line": 258, "name": "R_CheckPlane", "signature": "visplane_t*\nR_CheckPlane\n( visplane_t*\tpl,\n int\t\tstart,\n int\t\tstop )"}, {"doc": "R_MakeSpans", "kind": "function", "line": 323, "name": "R_MakeSpans", "signature": "void\nR_MakeSpans\n( int\t\tx,\n int\t\tt1,\n int\t\tb1,\n int\t\tt2,\n int\t\tb2 )"}, {"doc": "R_DrawPlanes At the end of each frame.", "kind": "function", "line": 360, "name": "R_DrawPlanes", "signature": "void R_DrawPlanes (void)"}, {"kind": "macro", "line": 45, "name": "MAXVISPLANES"}, {"kind": "macro", "line": 52, "name": "MAXOPENINGS"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Refresh, visplane stuff (floor, ceilings). ifndef __R_PLANE__ define __R_PLANE__ include \"r_data.h\" Visplane related.", "id": "progs/doomgeneric/r_plane.h", "kind": "module", "label": "r_plane.h", "language": "h", "sha256": "5504155916606261", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__R_PLANE__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: All the clipping: columns, horizontal spans, sky columns. include include include \"i_system.h\" include \"doomdef.h\" include \"doomstat.h\"", "id": "progs/doomgeneric/r_segs.c", "kind": "module", "label": "r_segs.c", "language": "c", "sha256": "b5ca495e19c756e0", "symbol_count": 5, "symbols": [{"doc": "R_RenderMaskedSegRange", "kind": "function", "line": 95, "name": "R_RenderMaskedSegRange", "signature": "void\nR_RenderMaskedSegRange\n( drawseg_t*\tds,\n int\t\tx1,\n int\t\tx2 )"}, {"doc": "R_RenderSegLoop Draws zero, one, or two textures (and possibly a masked texture) for walls. Can draw or mark the starting pixel of floor and ceiling textures. CALLED: CORE LOOPING ROUTINE. define HEIGHTBITS\t\t12 define HEIGHTUNIT\t\t(1< include include \"deh_main.h\" include \"doomdef.h\" include \"i_swap.h\" include \"i_system.h\"", "id": "progs/doomgeneric/r_things.c", "kind": "module", "label": "r_things.c", "language": "c", "sha256": "c61d74050f6eb59f", "symbol_count": 16, "symbols": [{"doc": "R_InstallSpriteLump Local function for R_InitSprites.", "kind": "function", "line": 99, "name": "R_InstallSpriteLump", "signature": "void\nR_InstallSpriteLump\n( int\t\tlump,\n unsigned\tframe,\n unsigned\trotation,\n boolean\tflipped )"}, {"doc": "R_InitSpriteDefs Pass a null terminated list of sprite names (4 chars exactly) to be used. Builds the sprite rotation matrixes to account for horizontally flipped sprites. Will report an error if the lumps are inconsistant. Only called at startup. Sprite lump names are 4 characters for the actor, a letter for the frame, and a number for the rotation. A sprite that is flippable will have an additional letter/number appended. The rotation character can be 0 to signify no rotations.", "kind": "function", "line": 171, "name": "R_InitSpriteDefs", "signature": "void R_InitSpriteDefs (char** namelist)"}, {"doc": "R_InitSprites Called at program start.", "kind": "function", "line": 291, "name": "R_InitSprites", "signature": "void R_InitSprites (char** namelist)"}, {"doc": "R_ClearSprites Called at frame start.", "kind": "function", "line": 309, "name": "R_ClearSprites", "signature": "void R_ClearSprites (void)"}, {"kind": "function", "line": 319, "name": "R_NewVisSprite", "signature": "vissprite_t* R_NewVisSprite (void)"}, {"kind": "function", "line": 342, "name": "R_DrawMaskedColumn", "signature": "void R_DrawMaskedColumn (column_t* column)"}, {"doc": "R_DrawVisSprite mfloorclip and mceilingclip should also be set.", "kind": "function", "line": 388, "name": "R_DrawVisSprite", "signature": "void\nR_DrawVisSprite\n( vissprite_t*\t\tvis,\n int\t\t\tx1,\n int\t\t\tx2 )"}, {"doc": "R_ProjectSprite Generates a vissprite for a thing if it might be visible.", "kind": "function", "line": 444, "name": "R_ProjectSprite", "signature": "void R_ProjectSprite (mobj_t* thing)"}, {"doc": "R_AddSprites During BSP traversal, this adds sprites by sector.", "kind": "function", "line": 605, "name": "R_AddSprites", "signature": "void R_AddSprites (sector_t* sec)"}, {"doc": "R_DrawPSprite", "kind": "function", "line": 638, "name": "R_DrawPSprite", "signature": "void R_DrawPSprite (pspdef_t* psp)"}, {"doc": "R_DrawPlayerSprites", "kind": "function", "line": 738, "name": "R_DrawPlayerSprites", "signature": "void R_DrawPlayerSprites (void)"}, {"kind": "function", "line": 777, "name": "R_SortVisSprites", "signature": "void R_SortVisSprites (void)"}, {"kind": "function", "line": 837, "name": "R_DrawSprite", "signature": "void R_DrawSprite (vissprite_t* spr)"}, {"doc": "R_DrawMasked", "kind": "function", "line": 951, "name": "R_DrawMasked", "signature": "void R_DrawMasked (void)"}, {"kind": "macro", "line": 37, "name": "MINZ"}, {"kind": "macro", "line": 41, "name": "BASEYCENTER"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Rendering of moving objects, sprites. ifndef __R_THINGS__ define __R_THINGS__ define MAXVISSPRITES \t128", "id": "progs/doomgeneric/r_things.h", "kind": "module", "label": "r_things.h", "language": "h", "sha256": "3628a47c278f0940", "symbol_count": 2, "symbols": [{"kind": "macro", "line": 21, "name": "__R_THINGS__"}, {"kind": "macro", "line": 22, "name": "MAXVISSPRITES"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: none include include include \"i_sound.h\" include \"i_system.h\" include \"doomfeatures.h\" include \"deh_str.h\" include \"doomstat.h\" include \"doomtype.h\" include \"sounds.h\"", "id": "progs/doomgeneric/s_sound.c", "kind": "module", "label": "s_sound.c", "language": "c", "sha256": "d2124f7ccb1e8590", "symbol_count": 24, "symbols": [{"doc": "Initializes sound stuff, including volume Sets channels, SFX and music volume, allocates channel buffer, sets S_sfx lookup.", "kind": "function", "line": 113, "name": "S_Init", "signature": "void S_Init(int sfxVolume, int musicVolume)"}, {"kind": "function", "line": 145, "name": "S_Shutdown", "signature": "void S_Shutdown(void)"}, {"kind": "function", "line": 151, "name": "S_StopChannel", "signature": "static void S_StopChannel(int cnum)"}, {"doc": "Per level startup code. Kills playing sounds at start of level, determines music if any, changes music.", "kind": "function", "line": 190, "name": "S_Start", "signature": "void S_Start(void)"}, {"kind": "function", "line": 242, "name": "S_StopSound", "signature": "void S_StopSound(mobj_t *origin)"}, {"doc": "S_GetChannel : If none available, return -1. Otherwise channel #.", "kind": "function", "line": 261, "name": "S_GetChannel", "signature": "static int S_GetChannel(mobj_t *origin, sfxinfo_t *sfxinfo)"}, {"doc": "Changes volume and stereo-separation variables from the norm of a sound effect to be played. If the sound is not audible, returns a 0. Otherwise, modifies parameters and returns 1.", "kind": "function", "line": 322, "name": "S_AdjustSoundParams", "signature": "static int S_AdjustSoundParams(mobj_t *listener, mobj_t *source,\n i..."}, {"kind": "function", "line": 390, "name": "S_StartSound", "signature": "void S_StartSound(void *origin_p, int sfx_id)"}, {"doc": "Stop and resume music, during game PAUSE.", "kind": "function", "line": 481, "name": "S_PauseSound", "signature": "void S_PauseSound(void)"}, {"kind": "function", "line": 490, "name": "S_ResumeSound", "signature": "void S_ResumeSound(void)"}, {"doc": "Updates music & sounds", "kind": "function", "line": 503, "name": "S_UpdateSounds", "signature": "void S_UpdateSounds(mobj_t *listener)"}, {"kind": "function", "line": 570, "name": "S_SetMusicVolume", "signature": "void S_SetMusicVolume(int volume)"}, {"kind": "function", "line": 581, "name": "S_SetSfxVolume", "signature": "void S_SetSfxVolume(int volume)"}, {"doc": "Starts some music with the music id found in sounds.h.", "kind": "function", "line": 595, "name": "S_StartMusic", "signature": "void S_StartMusic(int m_id)"}, {"kind": "function", "line": 600, "name": "S_ChangeMusic", "signature": "void S_ChangeMusic(int musicnum, int looping)"}, {"kind": "function", "line": 648, "name": "S_MusicPlaying", "signature": "boolean S_MusicPlaying(void)"}, {"kind": "function", "line": 653, "name": "S_StopMusic", "signature": "void S_StopMusic(void)"}, {"kind": "macro", "line": 43, "name": "S_CLIPPING_DIST"}, {"kind": "macro", "line": 51, "name": "S_CLOSE_DIST"}, {"kind": "macro", "line": 55, "name": "S_ATTENUATOR"}, {"kind": "macro", "line": 59, "name": "S_STEREO_SWING"}, {"kind": "macro", "line": 61, "name": "NORM_PITCH"}, {"kind": "macro", "line": 63, "name": "NORM_PRIORITY"}, {"kind": "macro", "line": 64, "name": "NORM_SEP"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: The not so system specific sound interface. ifndef __S_SOUND__ define __S_SOUND__ include \"p_mobj.h\" include \"sounds.h\" Initializes sound stuff, including volume Sets channels, SFX and music volume, allocates channel buffer, sets S_sfx lookup.", "id": "progs/doomgeneric/s_sound.h", "kind": "module", "label": "s_sound.h", "language": "h", "sha256": "6017183cd13e0af8", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__S_SOUND__"}]}, {"doc": "sha1.c - SHA1 hash function", "id": "progs/doomgeneric/sha1.c", "kind": "module", "label": "sha1.c", "language": "c", "sha256": "7710f6a55bd9906a", "symbol_count": 19, "symbols": [{"doc": "include \"i_swap.h\" include \"sha1.h\"", "kind": "function", "line": 39, "name": "SHA1_Init", "signature": "void SHA1_Init(sha1_context_t *hd)"}, {"doc": "Transform the message X which consists of 16 32-bit-words", "kind": "function", "line": 55, "name": "Transform", "signature": "static void Transform(sha1_context_t *hd, byte *data)"}, {"doc": "Update the message digest with the contents of INBUF with length INLEN.", "kind": "function", "line": 198, "name": "SHA1_Update", "signature": "void SHA1_Update(sha1_context_t *hd, byte *inbuf, size_t inlen)"}, {"doc": "The routine final terminates the computation and returns the digest. The handle is prepared for a new cycle, but adding bytes to the handle will the destroy the returned buffer. Returns: 20 bytes representing the digest.", "kind": "function", "line": 237, "name": "SHA1_Final", "signature": "void SHA1_Final(sha1_digest_t digest, sha1_context_t *hd)"}, {"kind": "function", "line": 302, "name": "SHA1_UpdateInt32", "signature": "void SHA1_UpdateInt32(sha1_context_t *context, unsigned int val)"}, {"kind": "function", "line": 314, "name": "SHA1_UpdateString", "signature": "void SHA1_UpdateString(sha1_context_t *context, char *str)"}, {"kind": "macro", "line": 82, "name": "K1"}, {"kind": "macro", "line": 85, "name": "K2"}, {"kind": "macro", "line": 86, "name": "K3"}, {"kind": "macro", "line": 87, "name": "K4"}, {"kind": "macro", "line": 88, "name": "F1"}, {"kind": "macro", "line": 89, "name": "F2"}, {"kind": "macro", "line": 90, "name": "F3"}, {"kind": "macro", "line": 91, "name": "F4"}, {"kind": "macro", "line": 92, "name": "rol"}, {"kind": "macro", "line": 94, "name": "M"}, {"kind": "macro", "line": 98, "name": "R"}, {"kind": "macro", "line": 288, "name": "X"}, {"kind": "macro", "line": 290, "name": "X"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: SHA-1 digest. ifndef __SHA1_H__ define __SHA1_H__ include \"doomtype.h\"", "id": "progs/doomgeneric/sha1.h", "kind": "module", "label": "sha1.h", "language": "h", "sha256": "7241c811244064ac", "symbol_count": 2, "symbols": [{"kind": "struct", "line": 26, "name": "sha1_context_s"}, {"kind": "macro", "line": 19, "name": "__SHA1_H__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Created by a sound utility. Kept as a sample, DOOM2 sounds. include include \"doomtype.h\" include \"sounds.h\" Information about all the music", "id": "progs/doomgeneric/sounds.c", "kind": "module", "label": "sounds.c", "language": "c", "sha256": "42fd2091c541a304", "symbol_count": 3, "symbols": [{"kind": "macro", "line": 30, "name": "MUSIC"}, {"kind": "macro", "line": 110, "name": "SOUND"}, {"kind": "macro", "line": 113, "name": "SOUND_LINK"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Created by the sound utility written by Dave Taylor. Kept as a sample, DOOM2 sounds. Frozen. ifndef __SOUNDS__ define __SOUNDS__ include \"i_sound.h\" the complete set of sound effects", "id": "progs/doomgeneric/sounds.h", "kind": "module", "label": "sounds.h", "language": "h", "sha256": "37ccad4758ff5456", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "__SOUNDS__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: The status bar widget code. include include include \"deh_main.h\" include \"doomdef.h\" include \"z_zone.h\" include \"v_video.h\" include \"i_swap.h\" include \"i_system.h\"", "id": "progs/doomgeneric/st_lib.c", "kind": "module", "label": "st_lib.c", "language": "c", "sha256": "5b70f1ae6edf98f6", "symbol_count": 10, "symbols": [{"kind": "function", "line": 50, "name": "STlib_init", "signature": "void STlib_init(void)"}, {"doc": "?", "kind": "function", "line": 58, "name": "STlib_initNum", "signature": "void\nSTlib_initNum\n( st_number_t*\t\tn,\n int\t\t\tx,\n int\t\t\ty,\n patch_t**\t\tpl,\n int*\t\t\tnum,\n bool..."}, {"doc": "A fairly efficient way to draw a number based on differences from the old number. Note: worth the trouble?", "kind": "function", "line": 83, "name": "STlib_drawNum", "signature": "void\nSTlib_drawNum\n( st_number_t*\tn,\n boolean\trefresh )"}, {"kind": "function", "line": 145, "name": "STlib_updateNum", "signature": "void\nSTlib_updateNum\n( st_number_t*\t\tn,\n boolean\t\trefresh )"}, {"kind": "function", "line": 155, "name": "STlib_initPercent", "signature": "void\nSTlib_initPercent\n( st_percent_t*\t\tp,\n int\t\t\tx,\n int\t\t\ty,\n patch_t**\t\tpl,\n int*\t\t\tnum,\n ..."}, {"kind": "function", "line": 168, "name": "STlib_updatePercent", "signature": "void\nSTlib_updatePercent\n( st_percent_t*\t\tper,\n int\t\t\trefresh )"}, {"kind": "function", "line": 182, "name": "STlib_initMultIcon", "signature": "void\nSTlib_initMultIcon\n( st_multicon_t*\ti,\n int\t\t\tx,\n int\t\t\ty,\n patch_t**\t\til,\n int*\t\t\tinum,..."}, {"kind": "function", "line": 201, "name": "STlib_updateMultIcon", "signature": "void\nSTlib_updateMultIcon\n( st_multicon_t*\tmi,\n boolean\t\trefresh )"}, {"kind": "function", "line": 232, "name": "STlib_initBinIcon", "signature": "void\nSTlib_initBinIcon\n( st_binicon_t*\t\tb,\n int\t\t\tx,\n int\t\t\ty,\n patch_t*\t\ti,\n boolean*\t\tval,\n..."}, {"kind": "function", "line": 251, "name": "STlib_updateBinIcon", "signature": "void\nSTlib_updateBinIcon\n( st_binicon_t*\t\tbi,\n boolean\t\trefresh )"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: The status bar widget code. ifndef __STLIB__ define __STLIB__ We are referring to patches. include \"r_defs.h\" Typedefs of widgets Number widget", "id": "progs/doomgeneric/st_lib.h", "kind": "module", "label": "st_lib.h", "language": "h", "sha256": "da574c940d1ca5a2", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 20, "name": "__STLIB__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Status bar code. Does the face/direction indicator animatin. Does palette indicators as well (red pain/berserk, bright pickup) include include \"i_system.h\" include \"i_video.h\" include \"z_zone.h\" include \"m_misc.h\" include \"m_random.h\" include \"w_wad.h\"", "id": "progs/doomgeneric/st_stuff.c", "kind": "module", "label": "st_stuff.c", "language": "c", "sha256": "6996329b0c886afa", "symbol_count": 137, "symbols": [{"kind": "function", "line": 415, "name": "ST_refreshBackground", "signature": "void ST_refreshBackground(void)"}, {"doc": "Respond to keyboard input events, intercept cheats.", "kind": "function", "line": 438, "name": "ST_Responder", "signature": "boolean\nST_Responder (event_t* ev)"}, {"kind": "function", "line": 662, "name": "ST_calcPainOffset", "signature": "int ST_calcPainOffset(void)"}, {"doc": "This is a not-very-pretty routine which handles the face states and their timing. the precedence of expressions is: dead > evil grin > turned head > straight ahead", "kind": "function", "line": 688, "name": "ST_updateFaceWidget", "signature": "void ST_updateFaceWidget(void)"}, {"kind": "function", "line": 859, "name": "ST_updateWidgets", "signature": "void ST_updateWidgets(void)"}, {"kind": "function", "line": 923, "name": "ST_Ticker", "signature": "void ST_Ticker (void)"}, {"kind": "function", "line": 935, "name": "ST_doPaletteStuff", "signature": "void ST_doPaletteStuff(void)"}, {"kind": "function", "line": 1000, "name": "ST_drawWidgets", "signature": "void ST_drawWidgets(boolean refresh)"}, {"kind": "function", "line": 1035, "name": "ST_doRefresh", "signature": "void ST_doRefresh(void)"}, {"kind": "function", "line": 1048, "name": "ST_diffDraw", "signature": "void ST_diffDraw(void)"}, {"kind": "function", "line": 1054, "name": "ST_Drawer", "signature": "void ST_Drawer (boolean fullscreen, boolean refresh)"}, {"doc": "Iterates through all graphics to be loaded or unloaded, along with the variable they use, invoking the specified callback function.", "kind": "function", "line": 1075, "name": "ST_loadUnloadGraphics", "signature": "static void ST_loadUnloadGraphics(load_callback_t callback)"}, {"kind": "function", "line": 1161, "name": "ST_loadCallback", "signature": "static void ST_loadCallback(char *lumpname, patch_t **variable)"}, {"kind": "function", "line": 1166, "name": "ST_loadGraphics", "signature": "void ST_loadGraphics(void)"}, {"kind": "function", "line": 1171, "name": "ST_loadData", "signature": "void ST_loadData(void)"}, {"kind": "function", "line": 1177, "name": "ST_unloadCallback", "signature": "static void ST_unloadCallback(char *lumpname, patch_t **variable)"}, {"kind": "function", "line": 1183, "name": "ST_unloadGraphics", "signature": "void ST_unloadGraphics(void)"}, {"kind": "function", "line": 1188, "name": "ST_unloadData", "signature": "void ST_unloadData(void)"}, {"kind": "function", "line": 1193, "name": "ST_initData", "signature": "void ST_initData(void)"}, {"kind": "function", "line": 1224, "name": "ST_createWidgets", "signature": "void ST_createWidgets(void)"}, {"kind": "function", "line": 1387, "name": "ST_Start", "signature": "void ST_Start (void)"}, {"kind": "function", "line": 1400, "name": "ST_Stop", "signature": "void ST_Stop (void)"}, {"kind": "function", "line": 1410, "name": "ST_Init", "signature": "void ST_Init (void)"}, {"kind": "macro", "line": 68, "name": "STARTREDPALS"}, {"kind": "macro", "line": 69, "name": "STARTBONUSPALS"}, {"kind": "macro", "line": 70, "name": "NUMREDPALS"}, {"kind": "macro", "line": 71, "name": "NUMBONUSPALS"}, {"kind": "macro", "line": 73, "name": "RADIATIONPAL"}, {"kind": "macro", "line": 77, "name": "ST_FACEPROBABILITY"}, {"kind": "macro", "line": 80, "name": "ST_TOGGLECHAT"}, {"kind": "macro", "line": 83, "name": "ST_X"}, {"kind": "macro", "line": 84, "name": "ST_X2"}, {"kind": "macro", "line": 85, "name": "ST_FX"}, {"kind": "macro", "line": 87, "name": "ST_FY"}, {"kind": "macro", "line": 91, "name": "ST_TALLNUMWIDTH"}, {"kind": "macro", "line": 94, "name": "ST_NUMPAINFACES"}, {"kind": "macro", "line": 95, "name": "ST_NUMSTRAIGHTFACES"}, {"kind": "macro", "line": 96, "name": "ST_NUMTURNFACES"}, {"kind": "macro", "line": 97, "name": "ST_NUMSPECIALFACES"}, {"kind": "macro", "line": 98, "name": "ST_FACESTRIDE"}, {"kind": "macro", "line": 101, "name": "ST_NUMEXTRAFACES"}, {"kind": "macro", "line": 103, "name": "ST_NUMFACES"}, {"kind": "macro", "line": 106, "name": "ST_TURNOFFSET"}, {"kind": "macro", "line": 108, "name": "ST_OUCHOFFSET"}, {"kind": "macro", "line": 109, "name": "ST_EVILGRINOFFSET"}, {"kind": "macro", "line": 110, "name": "ST_RAMPAGEOFFSET"}, {"kind": "macro", "line": 111, "name": "ST_GODFACE"}, {"kind": "macro", "line": 112, "name": "ST_DEADFACE"}, {"kind": "macro", "line": 113, "name": "ST_FACESX"}, {"kind": "macro", "line": 115, "name": "ST_FACESY"}, {"kind": "macro", "line": 116, "name": "ST_EVILGRINCOUNT"}, {"kind": "macro", "line": 118, "name": "ST_STRAIGHTFACECOUNT"}, {"kind": "macro", "line": 119, "name": "ST_TURNCOUNT"}, {"kind": "macro", "line": 120, "name": "ST_OUCHCOUNT"}, {"kind": "macro", "line": 121, "name": "ST_RAMPAGEDELAY"}, {"kind": "macro", "line": 122, "name": "ST_MUCHPAIN"}, {"kind": "macro", "line": 135, "name": "ST_AMMOWIDTH"}, {"kind": "macro", "line": 136, "name": "ST_AMMOX"}, {"kind": "macro", "line": 137, "name": "ST_AMMOY"}, {"kind": "macro", "line": 140, "name": "ST_HEALTHWIDTH"}, {"kind": "macro", "line": 141, "name": "ST_HEALTHX"}, {"kind": "macro", "line": 142, "name": "ST_HEALTHY"}, {"kind": "macro", "line": 145, "name": "ST_ARMSX"}, {"kind": "macro", "line": 146, "name": "ST_ARMSY"}, {"kind": "macro", "line": 147, "name": "ST_ARMSBGX"}, {"kind": "macro", "line": 148, "name": "ST_ARMSBGY"}, {"kind": "macro", "line": 149, "name": "ST_ARMSXSPACE"}, {"kind": "macro", "line": 150, "name": "ST_ARMSYSPACE"}, {"kind": "macro", "line": 153, "name": "ST_FRAGSX"}, {"kind": "macro", "line": 154, "name": "ST_FRAGSY"}, {"kind": "macro", "line": 155, "name": "ST_FRAGSWIDTH"}, {"kind": "macro", "line": 158, "name": "ST_ARMORWIDTH"}, {"kind": "macro", "line": 159, "name": "ST_ARMORX"}, {"kind": "macro", "line": 160, "name": "ST_ARMORY"}, {"kind": "macro", "line": 163, "name": "ST_KEY0WIDTH"}, {"kind": "macro", "line": 164, "name": "ST_KEY0HEIGHT"}, {"kind": "macro", "line": 165, "name": "ST_KEY0X"}, {"kind": "macro", "line": 166, "name": "ST_KEY0Y"}, {"kind": "macro", "line": 167, "name": "ST_KEY1WIDTH"}, {"kind": "macro", "line": 168, "name": "ST_KEY1X"}, {"kind": "macro", "line": 169, "name": "ST_KEY1Y"}, {"kind": "macro", "line": 170, "name": "ST_KEY2WIDTH"}, {"kind": "macro", "line": 171, "name": "ST_KEY2X"}, {"kind": "macro", "line": 172, "name": "ST_KEY2Y"}, {"kind": "macro", "line": 175, "name": "ST_AMMO0WIDTH"}, {"kind": "macro", "line": 176, "name": "ST_AMMO0HEIGHT"}, {"kind": "macro", "line": 177, "name": "ST_AMMO0X"}, {"kind": "macro", "line": 178, "name": "ST_AMMO0Y"}, {"kind": "macro", "line": 179, "name": "ST_AMMO1WIDTH"}, {"kind": "macro", "line": 180, "name": "ST_AMMO1X"}, {"kind": "macro", "line": 181, "name": "ST_AMMO1Y"}, {"kind": "macro", "line": 182, "name": "ST_AMMO2WIDTH"}, {"kind": "macro", "line": 183, "name": "ST_AMMO2X"}, {"kind": "macro", "line": 184, "name": "ST_AMMO2Y"}, {"kind": "macro", "line": 185, "name": "ST_AMMO3WIDTH"}, {"kind": "macro", "line": 186, "name": "ST_AMMO3X"}, {"kind": "macro", "line": 187, "name": "ST_AMMO3Y"}, {"kind": "macro", "line": 191, "name": "ST_MAXAMMO0WIDTH"}, {"kind": "macro", "line": 192, "name": "ST_MAXAMMO0HEIGHT"}, {"kind": "macro", "line": 193, "name": "ST_MAXAMMO0X"}, {"kind": "macro", "line": 194, "name": "ST_MAXAMMO0Y"}, {"kind": "macro", "line": 195, "name": "ST_MAXAMMO1WIDTH"}, {"kind": "macro", "line": 196, "name": "ST_MAXAMMO1X"}, {"kind": "macro", "line": 197, "name": "ST_MAXAMMO1Y"}, {"kind": "macro", "line": 198, "name": "ST_MAXAMMO2WIDTH"}, {"kind": "macro", "line": 199, "name": "ST_MAXAMMO2X"}, {"kind": "macro", "line": 200, "name": "ST_MAXAMMO2Y"}, {"kind": "macro", "line": 201, "name": "ST_MAXAMMO3WIDTH"}, {"kind": "macro", "line": 202, "name": "ST_MAXAMMO3X"}, {"kind": "macro", "line": 203, "name": "ST_MAXAMMO3Y"}, {"kind": "macro", "line": 206, "name": "ST_WEAPON0X"}, {"kind": "macro", "line": 207, "name": "ST_WEAPON0Y"}, {"kind": "macro", "line": 210, "name": "ST_WEAPON1X"}, {"kind": "macro", "line": 211, "name": "ST_WEAPON1Y"}, {"kind": "macro", "line": 214, "name": "ST_WEAPON2X"}, {"kind": "macro", "line": 215, "name": "ST_WEAPON2Y"}, {"kind": "macro", "line": 218, "name": "ST_WEAPON3X"}, {"kind": "macro", "line": 219, "name": "ST_WEAPON3Y"}, {"kind": "macro", "line": 222, "name": "ST_WEAPON4X"}, {"kind": "macro", "line": 223, "name": "ST_WEAPON4Y"}, {"kind": "macro", "line": 226, "name": "ST_WEAPON5X"}, {"kind": "macro", "line": 227, "name": "ST_WEAPON5Y"}, {"kind": "macro", "line": 230, "name": "ST_WPNSX"}, {"kind": "macro", "line": 231, "name": "ST_WPNSY"}, {"kind": "macro", "line": 234, "name": "ST_DETHX"}, {"kind": "macro", "line": 235, "name": "ST_DETHY"}, {"kind": "macro", "line": 241, "name": "ST_MSGTEXTX"}, {"kind": "macro", "line": 242, "name": "ST_MSGTEXTY"}, {"kind": "macro", "line": 244, "name": "ST_MSGWIDTH"}, {"kind": "macro", "line": 246, "name": "ST_MSGHEIGHT"}, {"kind": "macro", "line": 247, "name": "ST_OUTTEXTX"}, {"kind": "macro", "line": 249, "name": "ST_OUTTEXTY"}, {"kind": "macro", "line": 252, "name": "ST_OUTWIDTH"}, {"kind": "macro", "line": 254, "name": "ST_OUTHEIGHT"}, {"kind": "macro", "line": 255, "name": "ST_MAPTITLEX"}, {"kind": "macro", "line": 258, "name": "ST_MAPTITLEY"}, {"kind": "macro", "line": 260, "name": "ST_MAPHEIGHT"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Status bar code. Does the face/direction indicator animatin. Does palette indicators as well (red pain/berserk, bright pickup) ifndef __STSTUFF_H__ define __STSTUFF_H__ include \"doomtype.h\" include \"d_event.h\" include \"m_cheat.h\" Size of statusbar. Now sensitive for scaling. define ST_HEIGHT\t32", "id": "progs/doomgeneric/st_stuff.h", "kind": "module", "label": "st_stuff.h", "language": "h", "sha256": "17db201d36cf1f30", "symbol_count": 4, "symbols": [{"kind": "macro", "line": 22, "name": "__STSTUFF_H__"}, {"kind": "macro", "line": 30, "name": "ST_HEIGHT"}, {"kind": "macro", "line": 31, "name": "ST_WIDTH"}, {"kind": "macro", "line": 32, "name": "ST_Y"}]}, {"id": "progs/doomgeneric/statdump.c", "kind": "module", "label": "statdump.c", "language": "c", "sha256": "8fb06b4ebdd1d4a1", "symbol_count": 11, "symbols": [{"doc": "Try to work out whether this is a Doom 1 or Doom 2 game, by looking at the episode and map, and the par times. This is used to decide how to format the level name. Unfortunately, in some cases it is * impossible to determine whether this is Doom 1 or Doom 2.", "kind": "function", "line": 70, "name": "DiscoverGamemode", "signature": "static void DiscoverGamemode(wbstartstruct_t *stats, int num_stats)"}, {"doc": "if (partime != doom1_par_times[level] * TICRATE && partime == doom2_par_times[level] * TICRATE) { discovered_gamemission = doom2; return; } } } #endif #if ORIGCODE /* Returns the number of players active in the given stats buffer.", "kind": "function", "line": 129, "name": "GetNumPlayers", "signature": "static int GetNumPlayers(wbstartstruct_t *stats)"}, {"doc": "if ORIGCODE", "kind": "function", "line": 149, "name": "PrintBanner", "signature": "static void PrintBanner(FILE *stream)"}, {"kind": "function", "line": 154, "name": "PrintPercentage", "signature": "static void PrintPercentage(FILE *stream, int amount, int total)"}, {"doc": "statdump.exe is a 16-bit program, so very occasionally an integer overflow can occur when doing this calculation with a large value. Therefore, cast to short to give the same output. fprintf(stream, \" (%i%%)\", (short) (amount * 100) / total); } } #endif #if ORIGCODE /* Display statistics for a single player.", "kind": "function", "line": 179, "name": "PrintPlayerStats", "signature": "static void PrintPlayerStats(FILE *stream, wbstartstruct_t *stats,\n int player_num)"}, {"doc": "fprintf(stream, \"\\n\"); /* Secrets percentage fprintf(stream, \"\\tSecrets: \"); PrintPercentage(stream, player->ssecret, stats->maxsecret); fprintf(stream, \"\\n\"); } #endif #if ORIGCODE /* Frags table for multiplayer games.", "kind": "function", "line": 212, "name": "PrintFragsTable", "signature": "static void PrintFragsTable(FILE *stream, wbstartstruct_t *stats)"}, {"doc": "} fprintf(stream, \"\\n\"); } fprintf(stream, \"\\t\\t|\\n\"); fprintf(stream, \"\\t KILLERS\\n\"); } #endif #if ORIGCODE /* Displays the level name: MAPxy or ExMy, depending on game mode.", "kind": "function", "line": 271, "name": "PrintLevelName", "signature": "static void PrintLevelName(FILE *stream, int episode, int level)"}, {"doc": "case none: fprintf(stream, \"E%iM%i / MAP%02i\\n\", episode + 1, level + 1, level + 1); break; } PrintBanner(stream); } #endif #if ORIGCODE /* Print details of a statistics buffer to the given file.", "kind": "function", "line": 300, "name": "PrintStats", "signature": "static void PrintStats(FILE *stream, wbstartstruct_t *stats)"}, {"doc": "endif", "kind": "function", "line": 332, "name": "StatCopy", "signature": "void StatCopy(wbstartstruct_t *stats)"}, {"kind": "function", "line": 342, "name": "StatDump", "signature": "void StatDump(void)"}, {"kind": "macro", "line": 55, "name": "MAX_CAPTURES"}]}, {"id": "progs/doomgeneric/statdump.h", "kind": "module", "label": "statdump.h", "language": "h", "sha256": "1c3b72b93018ad17", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 18, "name": "DOOM_STATDUMP_H"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Lookup tables. Do not try to look them up :-). In the order of appearance: int finetangent[4096]\t- Tangens LUT. Should work with BAM fairly well (12 of 16bit, effectively, by shifting). int finesine[10240]\t\t- Sine lookup. Guess what, serves as cosine, too. Remarkable thing is, how to use BAMs with this? int tantoangle[2049]\t- ArcTan LUT, maps tan(angle) to angle fast. Gotta search.", "id": "progs/doomgeneric/tables.c", "kind": "module", "label": "tables.c", "language": "c", "sha256": "4355b79ded36cdd5", "symbol_count": 1, "symbols": [{"doc": "to get a global angle from cartesian coordinates, the coordinates are flipped until they are in the first octant of the coordinate system, then the y (<=x) is scaled and divided by x to get a tangent (slope) value which is looked up in the tantoangle[] table. The +1 size is to handle the case when x==y without additional checking.", "kind": "function", "line": 40, "name": "SlopeDiv", "signature": "int SlopeDiv(unsigned int num, unsigned int den)"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 1993-2008 Raven Software Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Lookup tables. Do not try to look them up :-). In the order of appearance: int finetangent[4096]\t- Tangens LUT. Should work with BAM fairly well (12 of 16bit, effectively, by shifting). int finesine[10240]\t\t- Sine lookup. Guess what, serves as cosine, too. Remarkable thing is, how to use BAMs with this? int tantoangle[2049]\t- ArcTan LUT, maps tan(angle) to angle fast. Gotta search.", "id": "progs/doomgeneric/tables.h", "kind": "module", "label": "tables.h", "language": "h", "sha256": "3e3c0203d39966a0", "symbol_count": 15, "symbols": [{"kind": "macro", "line": 35, "name": "__TABLES__"}, {"kind": "macro", "line": 40, "name": "FINEANGLES"}, {"kind": "macro", "line": 42, "name": "FINEMASK"}, {"kind": "macro", "line": 46, "name": "ANGLETOFINESHIFT"}, {"kind": "macro", "line": 62, "name": "ANG45"}, {"kind": "macro", "line": 64, "name": "ANG90"}, {"kind": "macro", "line": 65, "name": "ANG180"}, {"kind": "macro", "line": 66, "name": "ANG270"}, {"kind": "macro", "line": 67, "name": "ANG_MAX"}, {"kind": "macro", "line": 68, "name": "ANG1"}, {"kind": "macro", "line": 70, "name": "ANG60"}, {"kind": "macro", "line": 74, "name": "ANG1_X"}, {"kind": "macro", "line": 76, "name": "SLOPERANGE"}, {"kind": "macro", "line": 78, "name": "SLOPEBITS"}, {"kind": "macro", "line": 79, "name": "DBITS"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Refresh/rendering module, shared data struct definitions. ifndef V_PATCH_H define V_PATCH_H Patches. A patch holds one or more columns. Patches are used for sprites and all masked pictures, and we compose textures from the TEXTURE1/2 lists of patches.", "id": "progs/doomgeneric/v_patch.h", "kind": "module", "label": "v_patch.h", "language": "h", "sha256": "bc5556262ef515b6", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 21, "name": "V_PATCH_H"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 1993-2008 Raven Software Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Gamma correction LUT stuff. Functions to draw patches (by post) directly to screen. Functions to blit a block to the screen. include include include include \"i_system.h\" include \"doomtype.h\" include \"deh_str.h\"", "id": "progs/doomgeneric/v_video.c", "kind": "module", "label": "v_video.c", "language": "c", "sha256": "20d1de514eba60c8", "symbol_count": 30, "symbols": [{"doc": "V_MarkRect", "kind": "function", "line": 69, "name": "V_MarkRect", "signature": "void V_MarkRect(int x, int y, int width, int height)"}, {"doc": "V_CopyRect", "kind": "function", "line": 85, "name": "V_CopyRect", "signature": "void V_CopyRect(int srcx, int srcy, byte *source,\n int width, int height,\n ..."}, {"doc": "V_SetPatchClipCallback haleyjd 08/28/10: Added for Strife support. By calling this function, you can setup runtime error checking for patch clipping. Strife never caused errors by drawing patches partway off-screen. Some versions of vanilla DOOM also behaved differently than the default implementation, so this could possibly be extended to those as well for accurate emulation.", "kind": "function", "line": 129, "name": "V_SetPatchClipCallback", "signature": "void V_SetPatchClipCallback(vpatchclipfunc_t func)"}, {"doc": "V_DrawPatch Masks a column based masked pic to the screen.", "kind": "function", "line": 138, "name": "V_DrawPatch", "signature": "void V_DrawPatch(int x, int y, patch_t *patch)"}, {"doc": "V_DrawPatchFlipped Masks a column based masked pic to the screen. Flips horizontally, e.g. to mirror face.", "kind": "function", "line": 202, "name": "V_DrawPatchFlipped", "signature": "void V_DrawPatchFlipped(int x, int y, patch_t *patch)"}, {"doc": "V_DrawPatchDirect Draws directly to the screen on the pc.", "kind": "function", "line": 267, "name": "V_DrawPatchDirect", "signature": "void V_DrawPatchDirect(int x, int y, patch_t *patch)"}, {"doc": "V_DrawTLPatch Masks a column based translucent masked pic to the screen.", "kind": "function", "line": 278, "name": "V_DrawTLPatch", "signature": "void V_DrawTLPatch(int x, int y, patch_t * patch)"}, {"doc": "V_DrawXlaPatch villsa [STRIFE] Masks a column based translucent masked pic to the screen.", "kind": "function", "line": 328, "name": "V_DrawXlaPatch", "signature": "void V_DrawXlaPatch(int x, int y, patch_t * patch)"}, {"doc": "V_DrawAltTLPatch Masks a column based translucent masked pic to the screen.", "kind": "function", "line": 377, "name": "V_DrawAltTLPatch", "signature": "void V_DrawAltTLPatch(int x, int y, patch_t * patch)"}, {"doc": "V_DrawShadowedPatch Masks a column based masked pic to the screen.", "kind": "function", "line": 427, "name": "V_DrawShadowedPatch", "signature": "void V_DrawShadowedPatch(int x, int y, patch_t *patch)"}, {"doc": "Load tint table from TINTTAB lump.", "kind": "function", "line": 481, "name": "V_LoadTintTable", "signature": "void V_LoadTintTable(void)"}, {"doc": "V_LoadXlaTable villsa [STRIFE] Load xla table from XLATAB lump.", "kind": "function", "line": 492, "name": "V_LoadXlaTable", "signature": "void V_LoadXlaTable(void)"}, {"doc": "V_DrawBlock Draw a linear block of pixels into the view buffer.", "kind": "function", "line": 502, "name": "V_DrawBlock", "signature": "void V_DrawBlock(int x, int y, int width, int height, byte *src)"}, {"kind": "function", "line": 528, "name": "V_DrawFilledBox", "signature": "void V_DrawFilledBox(int x, int y, int w, int h, int c)"}, {"kind": "function", "line": 548, "name": "V_DrawHorizLine", "signature": "void V_DrawHorizLine(int x, int y, int w, int c)"}, {"kind": "function", "line": 561, "name": "V_DrawVertLine", "signature": "void V_DrawVertLine(int x, int y, int h, int c)"}, {"kind": "function", "line": 575, "name": "V_DrawBox", "signature": "void V_DrawBox(int x, int y, int w, int h, int c)"}, {"doc": "Draw a \"raw\" screen (lump containing raw data to blit directly to the screen)", "kind": "function", "line": 588, "name": "V_DrawRawScreen", "signature": "void V_DrawRawScreen(byte *raw)"}, {"doc": "V_Init", "kind": "function", "line": 597, "name": "V_Init", "signature": "void V_Init (void)"}, {"doc": "Set the buffer that the code draws to.", "kind": "function", "line": 605, "name": "V_UseBuffer", "signature": "void V_UseBuffer(byte *buffer)"}, {"doc": "Restore screen buffer to the i_video screen buffer.", "kind": "function", "line": 612, "name": "V_RestoreBuffer", "signature": "void V_RestoreBuffer(void)"}, {"doc": "WritePCXfile", "kind": "function", "line": 652, "name": "WritePCXfile", "signature": "void WritePCXfile(char *filename, byte *data,\n int width, int height,\n ..."}, {"doc": "ifdef HAVE_LIBPNG WritePNGfile", "kind": "function", "line": 710, "name": "error_fn", "signature": "static void error_fn(png_structp p, png_const_charp s)"}, {"kind": "function", "line": 715, "name": "warning_fn", "signature": "static void warning_fn(png_structp p, png_const_charp s)"}, {"kind": "function", "line": 720, "name": "WritePNGfile", "signature": "void WritePNGfile(char *filename, byte *data,\n int width, int height,\n ..."}, {"doc": "V_ScreenShot", "kind": "function", "line": 790, "name": "V_ScreenShot", "signature": "void V_ScreenShot(char *format)"}, {"doc": "define MOUSE_SPEED_BOX_WIDTH 120 define MOUSE_SPEED_BOX_HEIGHT 9", "kind": "function", "line": 845, "name": "V_DrawMouseSpeedBox", "signature": "void V_DrawMouseSpeedBox(int speed)"}, {"kind": "macro", "line": 46, "name": "RANGECHECK"}, {"kind": "macro", "line": 842, "name": "MOUSE_SPEED_BOX_WIDTH"}, {"kind": "macro", "line": 844, "name": "MOUSE_SPEED_BOX_HEIGHT"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Gamma correction LUT. Functions to draw patches (by post) directly to screen. Functions to blit a block to the screen. ifndef __V_VIDEO__ define __V_VIDEO__ include \"doomtype.h\" Needed because we are refering to patches. include \"v_patch.h\"", "id": "progs/doomgeneric/v_video.h", "kind": "module", "label": "v_video.h", "language": "h", "sha256": "680211ce9ba59e8c", "symbol_count": 2, "symbols": [{"kind": "macro", "line": 23, "name": "__V_VIDEO__"}, {"kind": "macro", "line": 33, "name": "CENTERY"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Generate a checksum of the WAD directory. include include include include \"m_misc.h\" include \"sha1.h\" include \"w_checksum.h\" include \"w_wad.h\"", "id": "progs/doomgeneric/w_checksum.c", "kind": "module", "label": "w_checksum.c", "language": "c", "sha256": "6ed803f9991900e3", "symbol_count": 3, "symbols": [{"kind": "function", "line": 30, "name": "GetFileNumber", "signature": "static int GetFileNumber(wad_file_t *handle)"}, {"kind": "function", "line": 56, "name": "ChecksumAddLump", "signature": "static void ChecksumAddLump(sha1_context_t *sha1_context, lumpinfo_t *lump)"}, {"kind": "function", "line": 67, "name": "W_Checksum", "signature": "void W_Checksum(sha1_digest_t digest)"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Generate a checksum of the WAD directory. ifndef W_CHECKSUM_H define W_CHECKSUM_H include \"doomtype.h\"", "id": "progs/doomgeneric/w_checksum.h", "kind": "module", "label": "w_checksum.h", "language": "h", "sha256": "b96949fd9df7c175", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 20, "name": "W_CHECKSUM_H"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: WAD I/O functions. include include \"config.h\" include \"doomtype.h\" include \"m_argv.h\" include \"w_file.h\"", "id": "progs/doomgeneric/w_file.c", "kind": "module", "label": "w_file.c", "language": "c", "sha256": "db1e98c8d8b68512", "symbol_count": 3, "symbols": [{"kind": "function", "line": 52, "name": "W_OpenFile", "signature": "wad_file_t *W_OpenFile(char *path)"}, {"kind": "function", "line": 84, "name": "W_CloseFile", "signature": "void W_CloseFile(wad_file_t *wad)"}, {"kind": "function", "line": 89, "name": "W_Read", "signature": "size_t W_Read(wad_file_t *wad, unsigned int offset,\n void *buffer, size_t buffer_len)"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: WAD I/O functions. ifndef __W_FILE__ define __W_FILE__ include include \"doomtype.h\"", "id": "progs/doomgeneric/w_file.h", "kind": "module", "label": "w_file.h", "language": "h", "sha256": "5408d364e1011b6c", "symbol_count": 2, "symbols": [{"kind": "struct", "line": 46, "name": "_wad_file_s"}, {"kind": "macro", "line": 21, "name": "__W_FILE__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: WAD I/O functions. include include \"m_misc.h\" include \"w_file.h\" include \"z_zone.h\"", "id": "progs/doomgeneric/w_file_stdc.c", "kind": "module", "label": "w_file_stdc.c", "language": "c", "sha256": "c347306624b53b2f", "symbol_count": 3, "symbols": [{"kind": "function", "line": 32, "name": "W_StdC_OpenFile", "signature": "static wad_file_t *W_StdC_OpenFile(char *path)"}, {"kind": "function", "line": 55, "name": "W_StdC_CloseFile", "signature": "static void W_StdC_CloseFile(wad_file_t *wad)"}, {"doc": "Read data from the specified position in the file into the provided buffer. Returns the number of bytes read.", "kind": "function", "line": 68, "name": "W_StdC_Read", "signature": "size_t W_StdC_Read(wad_file_t *wad, unsigned int offset,\n void *buffer, size_t ..."}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Common code to parse command line, identifying WAD files to load. include \"doomfeatures.h\" include \"d_iwad.h\" include \"m_argv.h\" include \"w_main.h\" include \"w_merge.h\" include \"w_wad.h\" include \"z_zone.h\" Parse the command line, merging WAD files that are sppecified. Returns true if at least one file was added.", "id": "progs/doomgeneric/w_main.c", "kind": "module", "label": "w_main.c", "language": "c", "sha256": "da26f30d3b2691e5", "symbol_count": 1, "symbols": [{"doc": "Parse the command line, merging WAD files that are sppecified. Returns true if at least one file was added.", "kind": "function", "line": 29, "name": "W_ParseCommandLine", "signature": "boolean W_ParseCommandLine(void)"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Common code to parse command line, identifying WAD files to load. ifndef W_MAIN_H define W_MAIN_H", "id": "progs/doomgeneric/w_main.h", "kind": "module", "label": "w_main.h", "language": "h", "sha256": "dc99ae306d83540d", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 19, "name": "W_MAIN_H"}]}, {"doc": "Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Handles merging of PWADs, similar to deutex's -merge option Ideally this should work exactly the same as in deutex, but trying to read the deutex source code made my brain hurt. ifndef W_MERGE_H define W_MERGE_H define W_NWT_MERGE_SPRITES 0x1 define W_NWT_MERGE_FLATS 0x2 Add a new WAD and merge it into the main directory", "id": "progs/doomgeneric/w_merge.h", "kind": "module", "label": "w_merge.h", "language": "h", "sha256": "b49b2b6aa87e13e6", "symbol_count": 3, "symbols": [{"kind": "macro", "line": 22, "name": "W_MERGE_H"}, {"kind": "macro", "line": 23, "name": "W_NWT_MERGE_SPRITES"}, {"kind": "macro", "line": 25, "name": "W_NWT_MERGE_FLATS"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Handles WAD file header, directory, lump I/O. include include include include include \"doomtype.h\" include \"config.h\" include \"d_iwad.h\"", "id": "progs/doomgeneric/w_wad.c", "kind": "module", "label": "w_wad.c", "language": "c", "sha256": "27c6d4e6f043b47b", "symbol_count": 15, "symbols": [{"doc": "Hash function used for lump names.", "kind": "function", "line": 71, "name": "W_LumpNameHash", "signature": "unsigned int W_LumpNameHash(const char *s)"}, {"doc": "Increase the size of the lumpinfo[] array to the specified size.", "kind": "function", "line": 89, "name": "ExtendLumpInfo", "signature": "static void ExtendLumpInfo(int newnumlumps)"}, {"doc": "W_AddFile All files are optional, but at least one file must be found (PWAD, if all required lumps are present). Files with a .wad extension are wadlink files with multiple lumps. Other files are single lumps with the base filename for the lump name.", "kind": "function", "line": 140, "name": "W_AddFile", "signature": "wad_file_t *W_AddFile (char *filename)"}, {"doc": "W_NumLumps", "kind": "function", "line": 246, "name": "W_NumLumps", "signature": "int W_NumLumps (void)"}, {"doc": "W_CheckNumForName Returns -1 if name not found.", "kind": "function", "line": 257, "name": "W_CheckNumForName", "signature": "int W_CheckNumForName (char* name)"}, {"doc": "W_GetNumForName Calls W_CheckNumForName, but bombs out if not found.", "kind": "function", "line": 308, "name": "W_GetNumForName", "signature": "int W_GetNumForName (char* name)"}, {"doc": "W_LumpLength Returns the buffer size needed to load the given lump.", "kind": "function", "line": 327, "name": "W_LumpLength", "signature": "int W_LumpLength (unsigned int lump)"}, {"doc": "W_ReadLump Loads the lump into the given buffer, which must be >= W_LumpLength().", "kind": "function", "line": 344, "name": "W_ReadLump", "signature": "void W_ReadLump(unsigned int lump, void *dest)"}, {"doc": "W_CacheLumpNum Load a lump into memory and return a pointer to a buffer containing the lump data. 'tag' is the type of zone memory buffer to allocate for the lump (usually PU_STATIC or PU_CACHE). If the lump is loaded as PU_STATIC, it should be released back using W_ReleaseLumpNum when no longer needed (do not use Z_ChangeTag).", "kind": "function", "line": 383, "name": "W_CacheLumpNum", "signature": "void *W_CacheLumpNum(int lumpnum, int tag)"}, {"doc": "W_CacheLumpName", "kind": "function", "line": 431, "name": "W_CacheLumpName", "signature": "void *W_CacheLumpName(char *name, int tag)"}, {"doc": "Release a lump back to the cache, so that it can be reused later without having to read from disk again, or alternatively, discarded if we run out of memory. Back in Vanilla Doom, this was just done using Z_ChangeTag directly, but now that we have WAD mmap, things are a bit more complicated ...", "kind": "function", "line": 445, "name": "W_ReleaseLumpNum", "signature": "void W_ReleaseLumpNum(int lumpnum)"}, {"kind": "function", "line": 466, "name": "W_ReleaseLumpName", "signature": "void W_ReleaseLumpName(char *name)"}, {"kind": "function", "line": 479, "name": "W_Profile", "signature": "void W_Profile (void)"}, {"doc": "Generate a hash table for fast lookups", "kind": "function", "line": 540, "name": "W_GenerateHashTable", "signature": "void W_GenerateHashTable(void)"}, {"kind": "function", "line": 587, "name": "W_CheckCorrectIWAD", "signature": "void W_CheckCorrectIWAD(GameMission_t mission)"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: WAD I/O functions. ifndef __W_WAD__ define __W_WAD__ include include \"doomtype.h\" include \"d_mode.h\" include \"w_file.h\"", "id": "progs/doomgeneric/w_wad.h", "kind": "module", "label": "w_wad.h", "language": "h", "sha256": "1c8d81fb0dc89600", "symbol_count": 2, "symbols": [{"kind": "struct", "line": 41, "name": "lumpinfo_s"}, {"kind": "macro", "line": 21, "name": "__W_WAD__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Intermission screens. include include \"z_zone.h\" include \"m_misc.h\" include \"m_random.h\" include \"deh_main.h\" include \"i_swap.h\" include \"i_system.h\"", "id": "progs/doomgeneric/wi_stuff.c", "kind": "module", "label": "wi_stuff.c", "language": "c", "sha256": "12414f8e5862d60d", "symbol_count": 66, "symbols": [{"doc": "slam background", "kind": "function", "line": 402, "name": "WI_slamBackground", "signature": "void WI_slamBackground(void)"}, {"doc": "The ticker is used to detect keys because of timing issues in netgames.", "kind": "function", "line": 409, "name": "WI_Responder", "signature": "boolean WI_Responder(event_t* ev)"}, {"doc": "Draws \" Finished!\"", "kind": "function", "line": 416, "name": "WI_drawLF", "signature": "void WI_drawLF(void)"}, {"doc": "Draws \"Entering \"", "kind": "function", "line": 452, "name": "WI_drawEL", "signature": "void WI_drawEL(void)"}, {"kind": "function", "line": 469, "name": "WI_drawOnLnode", "signature": "void\nWI_drawOnLnode\n( int\t\tn,\n patch_t*\tc[] )"}, {"kind": "function", "line": 516, "name": "WI_initAnimatedBack", "signature": "void WI_initAnimatedBack(void)"}, {"kind": "function", "line": 547, "name": "WI_updateAnimatedBack", "signature": "void WI_updateAnimatedBack(void)"}, {"kind": "function", "line": 598, "name": "WI_drawAnimatedBack", "signature": "void WI_drawAnimatedBack(void)"}, {"doc": "Draws a number. If digits > 0, then use that many digits minimum, otherwise only use as many as necessary. Returns new x position.", "kind": "function", "line": 626, "name": "WI_drawNum", "signature": "int\nWI_drawNum\n( int\t\tx,\n int\t\ty,\n int\t\tn,\n int\t\tdigits )"}, {"kind": "function", "line": 683, "name": "WI_drawPercent", "signature": "void\nWI_drawPercent\n( int\t\tx,\n int\t\ty,\n int\t\tp )"}, {"doc": "Display level completion time and par, or \"sucks\" message if overflow.", "kind": "function", "line": 703, "name": "WI_drawTime", "signature": "void\nWI_drawTime\n( int\t\tx,\n int\t\ty,\n int\t\tt )"}, {"kind": "function", "line": 738, "name": "WI_End", "signature": "void WI_End(void)"}, {"kind": "function", "line": 745, "name": "WI_initNoState", "signature": "void WI_initNoState(void)"}, {"kind": "function", "line": 752, "name": "WI_updateNoState", "signature": "void WI_updateNoState(void)"}, {"kind": "function", "line": 770, "name": "WI_initShowNextLoc", "signature": "void WI_initShowNextLoc(void)"}, {"kind": "function", "line": 780, "name": "WI_updateShowNextLoc", "signature": "void WI_updateShowNextLoc(void)"}, {"kind": "function", "line": 790, "name": "WI_drawShowNextLoc", "signature": "void WI_drawShowNextLoc(void)"}, {"kind": "function", "line": 831, "name": "WI_drawNoState", "signature": "void WI_drawNoState(void)"}, {"kind": "function", "line": 837, "name": "WI_fragSum", "signature": "int WI_fragSum(int playernum)"}, {"kind": "function", "line": 866, "name": "WI_initDeathmatchStats", "signature": "void WI_initDeathmatchStats(void)"}, {"kind": "function", "line": 895, "name": "WI_updateDeathmatchStats", "signature": "void WI_updateDeathmatchStats(void)"}, {"kind": "function", "line": 998, "name": "WI_drawDeathmatchStats", "signature": "void WI_drawDeathmatchStats(void)"}, {"kind": "function", "line": 1088, "name": "WI_initNetgameStats", "signature": "void WI_initNetgameStats(void)"}, {"kind": "function", "line": 1114, "name": "WI_updateNetgameStats", "signature": "void WI_updateNetgameStats(void)"}, {"kind": "function", "line": 1269, "name": "WI_drawNetgameStats", "signature": "void WI_drawNetgameStats(void)"}, {"kind": "function", "line": 1328, "name": "WI_initStats", "signature": "void WI_initStats(void)"}, {"kind": "function", "line": 1340, "name": "WI_updateStats", "signature": "void WI_updateStats(void)"}, {"kind": "function", "line": 1446, "name": "WI_drawStats", "signature": "void WI_drawStats(void)"}, {"kind": "function", "line": 1480, "name": "WI_checkForAccelerate", "signature": "void WI_checkForAccelerate(void)"}, {"doc": "Updates stuff each tick", "kind": "function", "line": 1514, "name": "WI_Ticker", "signature": "void WI_Ticker(void)"}, {"doc": "Common load/unload function. Iterates over all the graphics lumps to be loaded/unloaded into memory.", "kind": "function", "line": 1553, "name": "WI_loadUnloadData", "signature": "static void WI_loadUnloadData(load_callback_t callback)"}, {"kind": "function", "line": 1703, "name": "WI_loadCallback", "signature": "static void WI_loadCallback(char *name, patch_t **variable)"}, {"kind": "function", "line": 1708, "name": "WI_loadData", "signature": "void WI_loadData(void)"}, {"kind": "function", "line": 1734, "name": "WI_unloadCallback", "signature": "static void WI_unloadCallback(char *name, patch_t **variable)"}, {"kind": "function", "line": 1740, "name": "WI_unloadData", "signature": "void WI_unloadData(void)"}, {"kind": "function", "line": 1751, "name": "WI_Drawer", "signature": "void WI_Drawer (void)"}, {"kind": "function", "line": 1774, "name": "WI_initVariables", "signature": "void WI_initVariables(wbstartstruct_t* wbstartstruct)"}, {"kind": "function", "line": 1817, "name": "WI_Start", "signature": "void WI_Start(wbstartstruct_t* wbstartstruct)"}, {"kind": "macro", "line": 61, "name": "NUMEPISODES"}, {"kind": "macro", "line": 62, "name": "NUMMAPS"}, {"kind": "macro", "line": 75, "name": "WI_TITLEY"}, {"kind": "macro", "line": 76, "name": "WI_SPACINGY"}, {"kind": "macro", "line": 79, "name": "SP_STATSX"}, {"kind": "macro", "line": 80, "name": "SP_STATSY"}, {"kind": "macro", "line": 81, "name": "SP_TIMEX"}, {"kind": "macro", "line": 83, "name": "SP_TIMEY"}, {"kind": "macro", "line": 87, "name": "NG_STATSY"}, {"kind": "macro", "line": 88, "name": "NG_STATSX"}, {"kind": "macro", "line": 89, "name": "NG_SPACINGX"}, {"kind": "macro", "line": 94, "name": "DM_MATRIXX"}, {"kind": "macro", "line": 95, "name": "DM_MATRIXY"}, {"kind": "macro", "line": 96, "name": "DM_SPACINGX"}, {"kind": "macro", "line": 98, "name": "DM_TOTALSX"}, {"kind": "macro", "line": 100, "name": "DM_KILLERSX"}, {"kind": "macro", "line": 102, "name": "DM_KILLERSY"}, {"kind": "macro", "line": 103, "name": "DM_VICTIMSX"}, {"kind": "macro", "line": 104, "name": "DM_VICTIMSY"}, {"kind": "macro", "line": 221, "name": "ANIM"}, {"kind": "macro", "line": 288, "name": "SP_KILLS"}, {"kind": "macro", "line": 289, "name": "SP_ITEMS"}, {"kind": "macro", "line": 290, "name": "SP_SECRET"}, {"kind": "macro", "line": 291, "name": "SP_FRAGS"}, {"kind": "macro", "line": 292, "name": "SP_TIME"}, {"kind": "macro", "line": 293, "name": "SP_PAR"}, {"kind": "macro", "line": 294, "name": "SP_PAUSE"}, {"kind": "macro", "line": 298, "name": "SHOWNEXTLOCDELAY"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Intermission. ifndef __WI_STUFF__ define __WI_STUFF__ #include \"v_video.h\" include \"doomdef.h\" States for the intermission", "id": "progs/doomgeneric/wi_stuff.h", "kind": "module", "label": "wi_stuff.h", "language": "h", "sha256": "05ac4bf12b82bc75", "symbol_count": 1, "symbols": [{"kind": "macro", "line": 20, "name": "__WI_STUFF__"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Zone Memory Allocation. Neat. include \"z_zone.h\" include \"i_system.h\" include \"doomtype.h\" ZONE MEMORY ALLOCATION There is never any space between memblocks, and there will never be two contiguous free memblocks. The rover can be left pointing at a non-empty block.", "id": "progs/doomgeneric/z_zone.c", "kind": "module", "label": "z_zone.c", "language": "c", "sha256": "3f0862d4f6fbef39", "symbol_count": 16, "symbols": [{"kind": "struct", "line": 39, "name": "memblock_s"}, {"doc": "Z_ClearZone", "kind": "function", "line": 71, "name": "Z_ClearZone", "signature": "void Z_ClearZone (memzone_t* zone)"}, {"doc": "Z_Init", "kind": "function", "line": 97, "name": "Z_Init", "signature": "void Z_Init (void)"}, {"doc": "Z_Free", "kind": "function", "line": 126, "name": "Z_Free", "signature": "void Z_Free (void* ptr)"}, {"doc": "Z_Malloc You can pass a NULL user if the tag is < PU_PURGELEVEL. define MINFRAGMENT\t\t64", "kind": "function", "line": 182, "name": "Z_Malloc", "signature": "void*\nZ_Malloc\n( int\t\tsize,\n int\t\ttag,\n void*\t\tuser )"}, {"doc": "Z_FreeTags", "kind": "function", "line": 297, "name": "Z_FreeTags", "signature": "void\nZ_FreeTags\n( int\t\tlowtag,\n int\t\thightag )"}, {"doc": "Z_DumpHeap Note: TFileDumpHeap( stdout ) ?", "kind": "function", "line": 327, "name": "Z_DumpHeap", "signature": "void\nZ_DumpHeap\n( int\t\tlowtag,\n int\t\thightag )"}, {"doc": "Z_FileDumpHeap", "kind": "function", "line": 367, "name": "Z_FileDumpHeap", "signature": "void Z_FileDumpHeap (FILE* f)"}, {"doc": "Z_CheckHeap", "kind": "function", "line": 400, "name": "Z_CheckHeap", "signature": "void Z_CheckHeap (void)"}, {"doc": "Z_ChangeTag", "kind": "function", "line": 429, "name": "Z_ChangeTag2", "signature": "void Z_ChangeTag2(void *ptr, int tag, char *file, int line)"}, {"kind": "function", "line": 445, "name": "Z_ChangeUser", "signature": "void Z_ChangeUser(void *ptr, void **user)"}, {"doc": "Z_FreeMemory", "kind": "function", "line": 466, "name": "Z_FreeMemory", "signature": "int Z_FreeMemory (void)"}, {"kind": "function", "line": 483, "name": "Z_ZoneSize", "signature": "unsigned int Z_ZoneSize(void)"}, {"kind": "macro", "line": 35, "name": "MEM_ALIGN"}, {"kind": "macro", "line": 37, "name": "ZONEID"}, {"kind": "macro", "line": 181, "name": "MINFRAGMENT"}]}, {"doc": "Copyright(C) 1993-1996 Id Software, Inc. Copyright(C) 2005-2014 Simon Howard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. DESCRIPTION: Zone Memory Allocation, perhaps NeXT ObjectiveC inspired. Remark: this was the only stuff that, according to John Carmack, might have been useful for Quake. ifndef __Z_ZONE__ define __Z_ZONE__ include ZONE MEMORY", "id": "progs/doomgeneric/z_zone.h", "kind": "module", "label": "z_zone.h", "language": "h", "sha256": "c639f3e98971e718", "symbol_count": 2, "symbols": [{"kind": "macro", "line": 25, "name": "__Z_ZONE__"}, {"kind": "macro", "line": 69, "name": "Z_ChangeTag"}]}, {"id": "progs/src/cp.c", "kind": "module", "label": "cp.c", "language": "c", "sha256": "5df91ae276c2460d", "symbol_count": 3, "symbols": [{"doc": "define CP_BUF_SIZE 4096 define CP_EXIT_FAIL 1", "kind": "function", "line": 9, "name": "main", "signature": "int main(int argc, char **argv)"}, {"kind": "macro", "line": 6, "name": "CP_BUF_SIZE"}, {"kind": "macro", "line": 8, "name": "CP_EXIT_FAIL"}]}, {"doc": "Ring-3 privilege probe. Reads the CS selector at runtime and exits with", "id": "progs/src/cpl.c", "kind": "module", "label": "cpl.c", "language": "c", "sha256": "8d7ecbd9bf6d41bc", "symbol_count": 3, "symbols": [{"doc": "Ring-3 privilege probe. Reads the CS selector at runtime and exits with the CPL it is executing at. Under the isolation contract a Linux ELF runs at ring 3, so CS is the user code selector (0x23) and the exit code is 3; a regression to ring-0 execution would report 0. Built as a * static Linux ELF like lxhello.elf and run through the syscall ABI.", "kind": "function", "line": 6, "name": "read_cpl", "signature": "static long read_cpl(void)"}, {"kind": "function", "line": 11, "name": "exit_now", "signature": "static void exit_now(long code)"}, {"kind": "function", "line": 15, "name": "_start", "signature": "void _start(void)"}]}, {"id": "progs/src/fib.c", "kind": "module", "label": "fib.c", "language": "c", "sha256": "208268e3c5570576", "symbol_count": 2, "symbols": [{"kind": "function", "line": 1, "name": "fib", "signature": "int fib(int n)"}, {"kind": "function", "line": 5, "name": "main", "signature": "int main(void)"}]}, {"doc": "freedom - a headless text browser for MiniOS.", "id": "progs/src/freedom.c", "kind": "module", "label": "freedom.c", "language": "c", "sha256": "c9848577324cc4d6", "symbol_count": 41, "symbols": [{"doc": "static char f_dom[FREEDOM_DOM_BUF]; static int f_domlen; static char f_css[FREEDOM_CSS_BUF]; static int f_csslen; static char f_linkhost[FREEDOM_CSS_MAX][64]; static char f_linkpath[FREEDOM_CSS_MAX][128]; static int f_linkn; static int f_cstage; static int f_csize; static int f_crem; static int f_bdone; /* Decimal string to int (the ld stub set has no atol).", "kind": "function", "line": 127, "name": "atoi", "signature": "static int atoi(char *s)"}, {"doc": "Append src to dst at pos; returns the new length or -1 when it does * not fit.", "kind": "function", "line": 140, "name": "append", "signature": "static int append(char *dst, int pos, char *src, int cap)"}, {"kind": "function", "line": 148, "name": "ci_lower", "signature": "static int ci_lower(int c)"}, {"doc": "int n; n = strlen(src); if (pos + n >= cap) return -1; memcpy(dst + pos, src, n); dst[pos + n] = 0; return pos + n; } static int ci_lower(int c) { if (c >= 'A' && c <= 'Z') return c + ('a' - 'A'); return c; } /* Case-insensitive starts-with.", "kind": "function", "line": 155, "name": "ci_starts", "signature": "static int ci_starts(char *s, char *pre)"}, {"doc": "} /* Case-insensitive starts-with. static int ci_starts(char *s, char *pre) { while (*pre) { if (!*s) return 0; if (ci_lower(*s) != ci_lower(*pre)) return 0; s++; pre++; } return 1; } /* Case-insensitive equality.", "kind": "function", "line": 166, "name": "ci_eq", "signature": "static int ci_eq(char *a, char *b)"}, {"doc": "return 1; } /* Case-insensitive equality. static int ci_eq(char *a, char *b) { while (*a && *b) { if (ci_lower(*a) != ci_lower(*b)) return 0; a++; b++; } return *a == 0 && *b == 0; } /* Case-insensitive index of needle in haystack, or -1.", "kind": "function", "line": 176, "name": "ci_index", "signature": "static int ci_index(char *s, char *needle)"}, {"doc": "} return *a == 0 && *b == 0; } /* Case-insensitive index of needle in haystack, or -1. static int ci_index(char *s, char *needle) { int i; for (i = 0; s[i]; i++) { if (ci_starts(s + i, needle)) return i; } return -1; } /* Does the input look like an URL (no spaces, contains a dot)?", "kind": "function", "line": 185, "name": "looks_like_url", "signature": "static int looks_like_url(char *s)"}, {"doc": "Does s begin with \":\" per RFC 3986 (ALPHA *(ALPHA/DIGIT/+/-/.) \":\")? Any such prefix makes the string a scheme, * and the omnibox policy is: only http:// and https:// are executed.", "kind": "function", "line": 199, "name": "has_scheme", "signature": "static int has_scheme(char *s)"}, {"doc": "char c; c = s[0]; if (!((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z'))) return 0; for (i = 1; s[i]; i++) { c = s[i]; if (c == ':') return 1; if (!((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || (c >= '0' && c <= '9') || c == '+' || c == '-' || c == '.')) return 0; } return 0; } /* Encode a query for the DuckDuckGo HTML endpoint (no-JS).", "kind": "function", "line": 215, "name": "make_search", "signature": "static void make_search(char *out, char *query, int cap)"}, {"doc": "Split an http:// or https:// URL into f_host, f_path, f_port and f_secure. Returns 0 on failure. The input buffer is never modified: the parse is index-only, so it stays valid when the compiler widens * dereferenced stores.", "kind": "function", "line": 239, "name": "split_url", "signature": "static int split_url(char *url)"}, {"doc": "Recompute f_host/f_path/f_port/f_secure from the last Location value. Returns 1 when the chase may continue, 0 when it must stop * (diagnostic already printed).", "kind": "function", "line": 286, "name": "resolve_redirect", "signature": "static int resolve_redirect(void)"}, {"doc": "if (l + 1 >= 128) return 0; f_path[0] = '/'; memcpy(f_path + 1, loc, l); f_path[l + 1] = 0; } else { if (last + 1 + l >= 128) return 0; memcpy(f_path + last + 1, loc, l); f_path[last + 1 + l] = 0; } } return 1; } /* --- HTML filter --------------------------------------------------", "kind": "function", "line": 338, "name": "put_ws", "signature": "static void put_ws(void)"}, {"doc": "Print one text byte through the UTF-8 gate. Remote pages are hostile data: bytes outside a valid UTF-8 sequence (overlong, surrogate, out of range) are replaced with '?' (FreeDom policy). * Sequence state is kept in f_utbuf/f_utlen/f_utrem.", "kind": "function", "line": 350, "name": "put_utf", "signature": "static void put_utf(int c)"}, {"doc": "Print one text byte: whitespace collapses, everything else goes * through the UTF-8 gate. Dump modes suppress the page text.", "kind": "function", "line": 400, "name": "put_text", "signature": "static void put_text(int c)"}, {"doc": "} else if (v >= 2048 && v < 65536) { put_text(224 | (v >> 12)); put_text(128 | ((v >> 6) & 63)); put_text(128 | (v & 63)); } } else { int k; put_text('&'); for (k = 0; e[k]; k++) put_text(e[k]); put_text(';'); } } /* --- dump capture helpers ------------------------------------------", "kind": "function", "line": 455, "name": "css_append", "signature": "static void css_append(char *s, int n)"}, {"kind": "function", "line": 461, "name": "css_line", "signature": "static void css_line(char *s)"}, {"kind": "function", "line": 466, "name": "dom_append", "signature": "static void dom_append(char *s, int n)"}, {"kind": "function", "line": 472, "name": "dom_space", "signature": "static void dom_space(void)"}, {"kind": "function", "line": 476, "name": "dom_nl", "signature": "static void dom_nl(void)"}, {"doc": "int i; for (i = 0; i < n && f_domlen < FREEDOM_DOM_BUF - 1; i++) f_dom[f_domlen++] = s[i]; } static void dom_space(void) { if (f_domlen < FREEDOM_DOM_BUF - 1) f_dom[f_domlen++] = ' '; } static void dom_nl(void) { if (f_domlen < FREEDOM_DOM_BUF - 1) f_dom[f_domlen++] = '\\n'; } /* Record the finished attribute in its place.", "kind": "function", "line": 482, "name": "record_attr", "signature": "static void record_attr(void)"}, {"doc": "f_hreflen = f_vallen < 127 ? f_vallen : 127; memcpy(f_href, f_val, f_hreflen); f_href[f_hreflen] = 0; } else if (ci_eq(f_attr, \"style\")) { f_stylelen = f_vallen < (FREEDOM_ATTR_MAX - 1) ? f_vallen : (FREEDOM_ATTR_MAX - 1); memcpy(f_styleattr, f_val, f_stylelen); f_styleattr[f_stylelen] = 0; } else if (ci_eq(f_attr, \"rel\")) { f_rel_ss = ci_index(f_val, \"stylesheet\") >= 0; } } /* Is tagname a void element (no closing tag, no children)?", "kind": "function", "line": 507, "name": "is_void_tag", "signature": "static int is_void_tag(void)"}, {"doc": "A tag was fully collected into f_tagn (+ attributes). Decide what it * does to the stream and the dumps.", "kind": "function", "line": 519, "name": "classify_tag", "signature": "static void classify_tag(void)"}, {"doc": "} dom_nl(); if (!is_void_tag()) f_depth++; } if (ci_eq(f_tagn, \"br\") || ci_eq(f_tagn, \"p\") || ci_eq(f_tagn, \"div\") || ci_eq(f_tagn, \"h1\") || ci_eq(f_tagn, \"h2\") || ci_eq(f_tagn, \"h3\") || ci_eq(f_tagn, \"h4\") || ci_eq(f_tagn, \"h5\") || ci_eq(f_tagn, \"h6\") || ci_eq(f_tagn, \"li\") || ci_eq(f_tagn, \"tr\")) { if (f_mode == 0) putchar('\\n'); f_ws = 1; } } /* Feed one body byte into the filter.", "kind": "function", "line": 604, "name": "body_byte", "signature": "static void body_byte(int c)"}, {"doc": "f_rel_ss = 0; return; } if (c == '&') { f_entlen = 1; f_ent[0] = 0; return; } put_text(c); } /* --- HTTP ---------------------------------------------------------- /* Classify one header line (NUL-terminated).", "kind": "function", "line": 769, "name": "head_line", "signature": "static void head_line(char *line)"}, {"doc": "Parse the collected header block f_hdr[0..f_hlen-1] (the last four * bytes are the terminating CRLF CRLF).", "kind": "function", "line": 794, "name": "parse_head", "signature": "static void parse_head(void)"}, {"doc": "f_hdr[lend] = 0; if (i == 0) { char *sp; sp = strchr(f_hdr, ' '); if (sp) f_status = atoi(sp + 1); } else if (lend > i) { head_line(f_hdr + i); } f_hdr[lend] = '\\r'; i = lend + 2; } } /* Receive body bytes: TLS for f_secure, plain TCP otherwise.", "kind": "function", "line": 816, "name": "recv_body", "signature": "static int recv_body(int fd, char *buf, int len)"}, {"doc": "head_line(f_hdr + i); } f_hdr[lend] = '\\r'; i = lend + 2; } } /* Receive body bytes: TLS for f_secure, plain TCP otherwise. static int recv_body(int fd, char *buf, int len) { if (f_secure) return tls_recv(fd, buf, len); return recvfrom(fd, buf, len, 0, 0, 0); } /* Send the whole request: TLS for f_secure, plain TCP otherwise.", "kind": "function", "line": 822, "name": "send_all", "signature": "static int send_all(int fd, char *buf, int len)"}, {"doc": "Send one HTTP request and process the response body. Returns the status code, or 0 on transport failure. Sets f_redir when a * Location header was seen.", "kind": "function", "line": 833, "name": "fetch", "signature": "static int fetch(char *host, char *path, int port)"}, {"doc": "Fetch a linked stylesheet and print its raw body (through the UTF-8 * gate). No redirect chasing: the bound is one request.", "kind": "function", "line": 993, "name": "fetch_css", "signature": "static void fetch_css(char *host, char *path)"}, {"doc": "} continue; } f_ws = 0; put_utf(c); got++; } } close(fd); putchar('\\n'); printf(\"freedom: %s (%d bytes)\\n\", host, got); } /* Print the collected CSS dump.", "kind": "function", "line": 1071, "name": "print_css_dump", "signature": "static void print_css_dump(void)"}, {"doc": "putchar('\\n'); printf(\"freedom: %s (%d bytes)\\n\", host, got); } /* Print the collected CSS dump. static void print_css_dump(void) { int i; puts(\"=== freedom css ===\"); for (i = 0; i < f_csslen; i++) put_utf(f_css[i]); if (f_csslen == 0) puts(\"(no css)\"); if (f_linkn > 0) putchar('\\n'); } /* Print the collected DOM outline.", "kind": "function", "line": 1080, "name": "print_dom_dump", "signature": "static void print_dom_dump(void)"}, {"kind": "function", "line": 1086, "name": "main", "signature": "int main(int argc, char **argv)"}, {"kind": "macro", "line": 49, "name": "FREEDOM_HOPS_MAX"}, {"kind": "macro", "line": 51, "name": "FREEDOM_HDR_MAX"}, {"kind": "macro", "line": 52, "name": "FREEDOM_BUF"}, {"kind": "macro", "line": 53, "name": "FREEDOM_CHUNK_MAX"}, {"kind": "macro", "line": 54, "name": "FREEDOM_CSS_MAX"}, {"kind": "macro", "line": 55, "name": "FREEDOM_CSS_BUF"}, {"kind": "macro", "line": 56, "name": "FREEDOM_DOM_BUF"}, {"kind": "macro", "line": 57, "name": "FREEDOM_ATTR_MAX"}, {"kind": "macro", "line": 58, "name": "FREEDOM_LINE_MAX"}]}, {"doc": "Exercises the kernel libc surface used by loaded .o programs: fprintf to stdout/stderr, snprintf into a buffer, and exit().", "id": "progs/src/ftest.c", "kind": "module", "label": "ftest.c", "language": "c", "sha256": "1d8e1b6e8deb7dae", "symbol_count": 1, "symbols": [{"kind": "function", "line": 9, "name": "main", "signature": "int main(int argc, char **argv)"}]}, {"doc": "MiniOS test program — compiled as relocatable .o, loaded by kernel ELF loader", "id": "progs/src/hello.c", "kind": "module", "label": "hello.c", "language": "c", "sha256": "e93b117083442b2f", "symbol_count": 1, "symbols": [{"kind": "function", "line": 3, "name": "main", "signature": "int main(int argc, char **argv)"}]}, {"doc": "Minimal HTTP/1.0 GET through the Linux socket syscalls.", "id": "progs/src/http.c", "kind": "module", "label": "http.c", "language": "c", "sha256": "730f9ccc002f0237", "symbol_count": 2, "symbols": [{"doc": "int socket(int domain, int type, int proto); int connect(int fd, void *addr, int addrlen); int sendto(int fd, char *buf, int len, int flags, void *to, int tolen); int recvfrom(int fd, char *buf, int len, int flags, void *from, int *fromlen); int shutdown(int fd, int how); int close(int fd); int net_dns_resolve(char *host); int puts(char *s); int printf(char *fmt, ...); int strlen(char *s); int putchar(int c); /* Decimal string to int (the ld stub set has no atol).", "kind": "function", "line": 18, "name": "atoi", "signature": "int atoi(char *s)"}, {"kind": "function", "line": 28, "name": "main", "signature": "int main(int argc, char **argv)"}]}, {"doc": "Kernel-pointer rejection probe. Passes a kernel-heap address (0x2000000,", "id": "progs/src/kmem.c", "kind": "module", "label": "kmem.c", "language": "c", "sha256": "f1b6fb8e29168a0f", "symbol_count": 3, "symbols": [{"doc": "Kernel-pointer rejection probe. Passes a kernel-heap address (0x2000000, a supervisor page) to write(2). The hardened syscall boundary must reject it with -EFAULT; the program exits 0 when the write was refused and 1 when the kernel wrongly dereferenced a kernel pointer on its behalf. * Built as a static Linux ELF like lxhello.elf.", "kind": "function", "line": 6, "name": "syscall3", "signature": "static long syscall3(long n, long a1, long a2, long a3)"}, {"kind": "function", "line": 12, "name": "exit_now", "signature": "static void exit_now(long code)"}, {"kind": "function", "line": 16, "name": "_start", "signature": "void _start(void)"}]}, {"id": "progs/src/ldhello.c", "kind": "module", "label": "ldhello.c", "language": "c", "sha256": "e91d56eec84e6fa5", "symbol_count": 1, "symbols": [{"kind": "function", "line": 1, "name": "main", "signature": "int main(void)"}]}, {"id": "progs/src/lxhello.c", "kind": "module", "label": "lxhello.c", "language": "c", "sha256": "eb061563ee3c22ce", "symbol_count": 7, "symbols": [{"doc": "lxhello — a genuine Linux x86-64 ELF executable. Built with `gcc -static -no-pie -nostdlib` so it links as ET_EXEC at 0x400000 with a hand-written _start. It never uses libc: it reads argc/argv straight off the SysV initial stack and talks to the kernel exclusively through the `syscall` instruction. If MiniOS runs this and prints the message, its ELF loader + Linux syscall ABI are working.", "kind": "function", "line": 10, "name": "lx_syscall3", "signature": "static long lx_syscall3(long n, long a1, long a2, long a3)"}, {"doc": "define SYS_write 1 define SYS_exit 60", "kind": "function", "line": 22, "name": "lx_strlen", "signature": "static unsigned long lx_strlen(const char *s)"}, {"kind": "function", "line": 28, "name": "lx_write", "signature": "static void lx_write(const char *s)"}, {"kind": "function", "line": 32, "name": "lx_write_int", "signature": "static void lx_write_int(long v)"}, {"doc": "static void lx_write_int(long v) { char buf[24]; int i = (int)sizeof(buf); int neg = 0; buf[--i] = 0; if (v < 0) { neg = 1; v = -v; } if (v == 0) buf[--i] = '0'; while (v > 0 && i > 0) { buf[--i] = (char)('0' + v % 10); v /= 10; } if (neg && i > 0) buf[--i] = '-'; lx_write(&buf[i]); } /* Entry called by _start with the real argc/argv pulled off the stack.", "kind": "function", "line": 46, "name": "lmain", "signature": "int lmain(long argc, char **argv)"}, {"kind": "macro", "line": 19, "name": "SYS_write"}, {"kind": "macro", "line": 21, "name": "SYS_exit"}]}, {"doc": "NX probe. Under the isolation contract every user page starts", "id": "progs/src/nx.c", "kind": "module", "label": "nx.c", "language": "c", "sha256": "36a1205ca139084a", "symbol_count": 3, "symbols": [{"kind": "function", "line": 10, "name": "write_str", "signature": "static long write_str(const char *s, long n)"}, {"kind": "function", "line": 18, "name": "exit_now", "signature": "static void exit_now(long code)"}, {"kind": "function", "line": 22, "name": "_start", "signature": "void _start(void)"}]}, {"id": "progs/src/test.c", "kind": "module", "label": "test.c", "language": "c", "sha256": "6884c669dd0f450d", "symbol_count": 2, "symbols": [{"kind": "function", "line": 1, "name": "add", "signature": "int add(int a, int b)"}, {"kind": "function", "line": 2, "name": "main", "signature": "int main(void)"}]}, {"id": "progs/src/w1.c", "kind": "module", "label": "w1.c", "language": "c", "sha256": "99edf40b7bdeb928", "symbol_count": 1, "symbols": [{"kind": "function", "line": 2, "name": "main", "signature": "int main(void)"}]}, {"id": "ramdisk_data.c", "kind": "module", "label": "ramdisk_data.c", "language": "c", "sha256": "d0e1e915c7b2e722", "symbol_count": 0, "symbols": []}, {"id": "sched.c", "kind": "module", "label": "sched.c", "language": "c", "sha256": "05b6526b6694f0cd", "symbol_count": 31, "symbols": [{"kind": "function", "line": 20, "name": "read_cr3", "signature": "static inline unsigned long read_cr3(void)"}, {"doc": "proc_t procs[MAX_PROCS]; int proc_count; int current_pid; volatile uint64_t sys_ticks; extern void user_trampoline(void); static inline unsigned long read_cr3(void) { unsigned long v; __asm__ volatile(\"mov %%cr3, %0\" : \"=r\"(v)); return v; } /* ---- TSS ----", "kind": "function", "line": 28, "name": "__attribute__", "signature": "typedef struct __attribute__((packed))"}, {"doc": "/* ---- TSS ---- typedef struct __attribute__((packed)) { uint32_t res0; uint64_t rsp0, rsp1, rsp2; uint64_t res1; uint64_t ist1, ist2, ist3, ist4, ist5, ist6, ist7; uint64_t res2; uint16_t res3; uint16_t iopb; } tss_t; static tss_t the_tss __attribute__((aligned(16))); /* ---- IDT ----", "kind": "function", "line": 40, "name": "__attribute__", "signature": "typedef struct __attribute__((packed))"}, {"kind": "function", "line": 45, "name": "__attribute__", "signature": "typedef struct __attribute__((packed))"}, {"kind": "function", "line": 52, "name": "alloc_kstack", "signature": "static uint64_t alloc_kstack(void)"}, {"doc": "static uint64_t alloc_kstack(void) { if (kstack_idx >= MAX_PROCS) return 0; return (uint64_t)&kstack_pool[kstack_idx++][16*1024]; } /* ---- Trap frame (must match isr_stubs.S) ---- typedef struct { uint64_t rax, rbx, rcx, rdx, rsi, rdi, rbp; uint64_t r8, r9, r10, r11, r12, r13, r14, r15; uint64_t rip, cs, rflags, rsp, ss; uint64_t vector, errcode; } trap_frame_t; /* ---- IDT init ----", "kind": "function", "line": 67, "name": "idt_set", "signature": "static void idt_set(int vec, void (*h)(void))"}, {"kind": "function", "line": 77, "name": "idt_init", "signature": "static void idt_init(void)"}, {"doc": "static void idt_init(void) { kmemset(idt, 0, sizeof(idt)); int i; for (i = 0; i < 256; i++) if (isr_stub_table[i]) idt_set(i, (void(*)(void))isr_stub_table[i]); static idtr_t idtr; idtr.limit = sizeof(idt) - 1; idtr.base = (uint64_t)&idt; __asm__ volatile(\"lidt %0\" :: \"m\"(idtr)); } /* ---- PIC ----", "kind": "function", "line": 91, "name": "pic_init", "signature": "static void pic_init(void)"}, {"doc": "/* ---- PIC ---- static void pic_init(void) { outb(0x20,0x11); outb(0xA0,0x11); outb(0x21,0x20); outb(0xA1,0x28); outb(0x21,0x04); outb(0xA1,0x02); outb(0x21,0x01); outb(0xA1,0x01); /* Master: unmask IRQ0 (timer) + IRQ1 (keyboard) + IRQ2 (cascade). outb(0x21,0xF8); /* Slave: unmask IRQ12 (mouse) only. 0xEF = ~bit4. outb(0xA1,0xEF); } /* ---- PIT channel 0: 100 Hz ----", "kind": "function", "line": 103, "name": "pit_init", "signature": "static void pit_init(void)"}, {"kind": "function", "line": 109, "name": "pic_eoi", "signature": "static void pic_eoi(int irq)"}, {"kind": "function", "line": 117, "name": "tss_init", "signature": "static void tss_init(void)"}, {"doc": "tss_gdtr_buf[2] = gdtr_base & 0xFF; tss_gdtr_buf[3] = (gdtr_base >> 8) & 0xFF; tss_gdtr_buf[4] = (gdtr_base >> 16) & 0xFF; tss_gdtr_buf[5] = (gdtr_base >> 24) & 0xFF; tss_gdtr_buf[6] = (gdtr_base >> 32) & 0xFF; tss_gdtr_buf[7] = (gdtr_base >> 40) & 0xFF; tss_gdtr_buf[8] = (gdtr_base >> 48) & 0xFF; tss_gdtr_buf[9] = (gdtr_base >> 56) & 0xFF; __asm__ volatile(\"lgdt (%0)\" : : \"r\"(tss_gdtr_buf) : \"memory\"); __asm__ volatile(\"ltr %%ax\" :: \"a\"((uint16_t)0x28) : \"memory\"); } /* ---- C dispatch from isr_common ----", "kind": "function", "line": 157, "name": "isr_dispatch", "signature": "void isr_dispatch(int vector, trap_frame_t *frame)"}, {"doc": "mouse_state.present = 1; } pic_eoi(12); return; } if (vector >= 32 && vector < 48) { pic_eoi(vector - 32); return; } if (vector < 32) { kprintf(\"EXCEPTION %ld err=%ld rip=%lx\\n\", (long)frame->vector, (long)frame->errcode, (unsigned long)frame->rip); for(;;) __asm__(\"hlt\"); } } /* ---- Process management ----", "kind": "function", "line": 246, "name": "proc_get", "signature": "proc_t *proc_get(int pid)"}, {"kind": "function", "line": 252, "name": "proc_create", "signature": "int proc_create(const char *name, int parent_pid)"}, {"kind": "function", "line": 286, "name": "schedule", "signature": "void schedule(void)"}, {"kind": "function", "line": 303, "name": "yield", "signature": "void yield(void)"}, {"kind": "function", "line": 308, "name": "do_exit", "signature": "void do_exit(int code)"}, {"kind": "function", "line": 321, "name": "do_waitpid", "signature": "int do_waitpid(int pid)"}, {"kind": "function", "line": 340, "name": "do_kill", "signature": "int do_kill(int pid)"}, {"kind": "function", "line": 347, "name": "timer_tick", "signature": "void timer_tick(void)"}, {"doc": "schedule(); } } int do_kill(int pid) { proc_t *p = proc_get(pid); if (!p) return -1; do_exit(-1); return 0; } void timer_tick(void) { sys_ticks++; } /* ---- PS/2 mouse hardware init ----", "kind": "function", "line": 351, "name": "mouse_wait_cmd", "signature": "static void mouse_wait_cmd(void)"}, {"kind": "function", "line": 357, "name": "mouse_wait_data", "signature": "static void mouse_wait_data(void)"}, {"kind": "function", "line": 364, "name": "mouse_write", "signature": "static void mouse_write(unsigned char data)"}, {"kind": "function", "line": 371, "name": "mouse_read", "signature": "static unsigned char mouse_read(void)"}, {"kind": "function", "line": 376, "name": "mouse_hw_init", "signature": "static void mouse_hw_init(void)"}, {"kind": "function", "line": 420, "name": "mouse_disable", "signature": "void mouse_disable(void)"}, {"kind": "function", "line": 422, "name": "mouse_enable", "signature": "void mouse_enable(void)"}, {"kind": "function", "line": 423, "name": "sched_init", "signature": "void sched_init(void)"}, {"kind": "macro", "line": 10, "name": "MY_SYS_KSTK_TOP"}, {"kind": "macro", "line": 11, "name": "MY_USER_STACK_TOP"}, {"kind": "macro", "line": 12, "name": "MY_USER_LOAD_BASE"}]}, {"doc": "ifndef SCHED_H define SCHED_H include ---- Process states ----", "id": "sched.h", "kind": "module", "label": "sched.h", "language": "h", "sha256": "17d23a4bcefb8664", "symbol_count": 8, "symbols": [{"kind": "macro", "line": 2, "name": "SCHED_H"}, {"kind": "macro", "line": 7, "name": "PROC_FREE"}, {"kind": "macro", "line": 8, "name": "PROC_READY"}, {"kind": "macro", "line": 9, "name": "PROC_RUNNING"}, {"kind": "macro", "line": 10, "name": "PROC_BLOCKED"}, {"kind": "macro", "line": 11, "name": "PROC_ZOMBIE"}, {"kind": "macro", "line": 14, "name": "MAX_PROCS"}, {"kind": "macro", "line": 15, "name": "PROC_KSTACK_SZ"}]}, {"doc": "stage1.S - MiniOS boot sector.", "id": "stage1.S", "kind": "module", "label": "stage1.S", "language": "S", "sha256": "53698e71542daaec", "symbol_count": 11, "symbols": [{"kind": "function", "line": 28, "name": "main"}, {"kind": "function", "line": 32, "name": "normalize"}, {"kind": "function", "line": 78, "name": "no_extensions"}, {"kind": "function", "line": 82, "name": "read_failed"}, {"kind": "function", "line": 85, "name": "fail"}, {"kind": "function", "line": 88, "name": "halt"}, {"kind": "function", "line": 93, "name": "puts"}, {"kind": "function", "line": 97, "name": "puts_next"}, {"kind": "function", "line": 103, "name": "puts_done"}, {"kind": "function", "line": 107, "name": "msg_no_lba"}, {"kind": "function", "line": 109, "name": "msg_read"}]}, {"doc": "stage2.S - MiniOS second-stage loader.", "id": "stage2.S", "kind": "module", "label": "stage2.S", "language": "S", "sha256": "00f7a99836e577b0", "symbol_count": 33, "symbols": [{"kind": "function", "line": 39, "name": "stage2_main"}, {"kind": "function", "line": 54, "name": "a20_ready"}, {"kind": "function", "line": 69, "name": "load_chunk"}, {"kind": "function", "line": 74, "name": "chunk_size_ready"}, {"kind": "function", "line": 81, "name": "read_piece"}, {"kind": "function", "line": 86, "name": "piece_size_ready"}, {"kind": "function", "line": 118, "name": "chunk_copy"}, {"kind": "function", "line": 131, "name": "chunk_leave_pm"}, {"kind": "function", "line": 141, "name": "chunk_resume"}, {"kind": "function", "line": 160, "name": "enter_long_mode"}, {"kind": "function", "line": 188, "name": "fill_pt0_low"}, {"kind": "function", "line": 196, "name": "fill_pt0_kernel"}, {"kind": "function", "line": 213, "name": "fill_pt1_kernel"}, {"kind": "function", "line": 221, "name": "fill_pt1_identity"}, {"doc": "endif", "kind": "function", "line": 237, "name": "fill_page_directory"}, {"kind": "function", "line": 266, "name": "read_failed"}, {"kind": "function", "line": 270, "name": "halt"}, {"kind": "function", "line": 275, "name": "puts"}, {"kind": "function", "line": 279, "name": "puts_next"}, {"kind": "function", "line": 285, "name": "puts_done"}, {"kind": "function", "line": 289, "name": "msg_read"}, {"doc": "Pick the kernel's physical load base: a 2 MB-aligned address in the 64-position window above the kernel heap, seeded from the TSC and the RTC so consecutive boots land at different locations. Returns the base in eax. The virtual base stays at the link-time 0x100000, which PT0/PT1 map * to the returned physical base.", "kind": "function", "line": 298, "name": "kaslr_pick"}, {"kind": "function", "line": 335, "name": "gdt32_start"}, {"kind": "function", "line": 341, "name": "gdt32_end"}, {"kind": "function", "line": 342, "name": "gdt32_ptr"}, {"kind": "function", "line": 347, "name": "gdt64_image"}, {"kind": "function", "line": 353, "name": "gdt64_ptr"}, {"kind": "function", "line": 357, "name": "saved_gdtr"}, {"kind": "function", "line": 360, "name": "sectors_left"}, {"kind": "function", "line": 362, "name": "chunk_sectors"}, {"kind": "function", "line": 364, "name": "next_lba"}, {"kind": "function", "line": 366, "name": "dest_addr"}, {"kind": "function", "line": 368, "name": "kaslr_dest"}]}, {"doc": "BDD suite for MiniOS: boots the disk image in QEMU and drives the shell over the serial console (COM1). Every scenario sends a script of shell commands, then asserts that the expected markers appear in the console log. The guest powers itself off through the ACPI port at the end of each scenario, which makes QEMU exit; the timeout is only a safety net for hangs. A stale-qemu guard prevents image-lock cascades between runs. Environment overrides: QEMU, TMO (per-scenario timeout), KEEP_LOG=1 to keep the console log of the last scenario for inspection.", "id": "test_bdd.sh", "kind": "module", "label": "test_bdd.sh", "language": "sh", "sha256": "6642a779dacd69f2", "symbol_count": 9, "symbols": [{"kind": "function", "line": 30, "name": "cleanup_stale_qemu"}, {"doc": "scenario