Some course related stuff
+diff --git a/.github/workflows/doxygen-gh-pages.yml b/.github/workflows/doxygen-gh-pages.yml
index c988868e8d..73c6f669b3 100644
--- a/.github/workflows/doxygen-gh-pages.yml
+++ b/.github/workflows/doxygen-gh-pages.yml
@@ -10,9 +10,27 @@ jobs:
deploy:
runs-on: ubuntu-latest
steps:
- - uses: DenverCoder1/doxygen-github-pages-action@v1.3.0
+ - name: Checkout repository
+ uses: actions/checkout@v3
with:
- github_token: ${{ secrets.GITHUB_TOKEN }}
+ submodules: "true"
+
+ - name: Install Doxygen
+ run: |
+ sudo apt-get install graphviz doxygen -y
+ wget https://www.doxygen.nl/files/doxygen-1.10.0.linux.bin.tar.gz
+ tar -xzf doxygen-*.linux.bin.tar.gz
+
+ - name: Generate Doxygen documentation
+ run: |
+ ./doxygen-*/bin/doxygen Doxyfile
+
+ - name: Create .nojekyll (ensures pages with underscores work on gh pages)
+ run: touch docs/html/.nojekyll
+
+ - name: Deploy to GitHub Pages
+ uses: JamesIves/github-pages-deploy-action@v4
+ with:
+ token: ${{ secrets.GITHUB_TOKEN }}
branch: gh-pages
- folder: docs/html
- config_file: Doxyfile
\ No newline at end of file
+ folder: docs/html
\ No newline at end of file
diff --git a/Doxyfile b/Doxyfile
index 1218d02b16..111c098ef8 100644
--- a/Doxyfile
+++ b/Doxyfile
@@ -483,7 +483,7 @@ TYPEDEF_HIDES_STRUCT = NO
# the optimal cache size from a speed point of view.
# Minimum value: 0, maximum value: 9, default value: 0.
-LOOKUP_CACHE_SIZE = 0
+LOOKUP_CACHE_SIZE = 1
# The NUM_PROC_THREADS specifies the number of threads doxygen is allowed to use
# during processing. When set to 0 doxygen will based this on the number of
@@ -496,7 +496,7 @@ LOOKUP_CACHE_SIZE = 0
# DOT_NUM_THREADS setting.
# Minimum value: 0, maximum value: 32, default value: 1.
-NUM_PROC_THREADS = 1
+NUM_PROC_THREADS = 0
# If the TIMESTAMP tag is set different from NO then each generated page will
# contain the date or date and time when the page was generated. Setting this to
@@ -946,6 +946,7 @@ WARN_LOGFILE =
INPUT = docs/ \
src/ \
include/ \
+ courses/ \
tools/doxygen_syms.md
# This tag can be used to specify the character encoding of the source files
@@ -1095,7 +1096,7 @@ EXAMPLE_RECURSIVE = NO
# that contain images that are to be included in the documentation (see the
# \image command).
-IMAGE_PATH =
+IMAGE_PATH = docs/images
# The INPUT_FILTER tag can be used to specify a program that doxygen should
# invoke to filter for each input file. Doxygen will invoke the filter program
@@ -1355,7 +1356,7 @@ HTML_FILE_EXTENSION = .html
# of the possible markers and block names see the documentation.
# This tag requires that the tag GENERATE_HTML is set to YES.
-HTML_HEADER =
+HTML_HEADER = docs/header.html
# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
# generated HTML page. If the tag is left blank doxygen will generate a standard
@@ -1396,7 +1397,9 @@ HTML_STYLESHEET =
# This tag requires that the tag GENERATE_HTML is set to YES.
HTML_EXTRA_STYLESHEET = doxygen-awesome-css/doxygen-awesome.css \
- doxygen-awesome-css/doxygen-awesome-sidebar-only.css
+ doxygen-awesome-css/doxygen-awesome-sidebar-only.css \
+ doxygen-awesome-css/doxygen-awesome-sidebar-only-darkmode-toggle.css \
+ docs/docs.css
# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
# other source files which should be copied to the HTML output directory. Note
@@ -1406,7 +1409,7 @@ HTML_EXTRA_STYLESHEET = doxygen-awesome-css/doxygen-awesome.css \
# files will be copied as-is; there are no commands or markers available.
# This tag requires that the tag GENERATE_HTML is set to YES.
-HTML_EXTRA_FILES =
+HTML_EXTRA_FILES = doxygen-awesome-css/doxygen-awesome-darkmode-toggle.js
# The HTML_COLORSTYLE tag can be used to specify if the generated HTML output
# should be rendered with a dark or light theme.
@@ -1430,7 +1433,7 @@ HTML_COLORSTYLE = LIGHT
# Minimum value: 0, maximum value: 359, default value: 220.
# This tag requires that the tag GENERATE_HTML is set to YES.
-HTML_COLORSTYLE_HUE = 220
+HTML_COLORSTYLE_HUE = 209
# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
# in the HTML output. For a value of 0 the output will use gray-scales only. A
@@ -1438,7 +1441,7 @@ HTML_COLORSTYLE_HUE = 220
# Minimum value: 0, maximum value: 255, default value: 100.
# This tag requires that the tag GENERATE_HTML is set to YES.
-HTML_COLORSTYLE_SAT = 100
+HTML_COLORSTYLE_SAT = 255
# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the
# luminance component of the colors in the HTML output. Values below 100
@@ -1449,7 +1452,7 @@ HTML_COLORSTYLE_SAT = 100
# Minimum value: 40, maximum value: 240, default value: 80.
# This tag requires that the tag GENERATE_HTML is set to YES.
-HTML_COLORSTYLE_GAMMA = 80
+HTML_COLORSTYLE_GAMMA = 113
# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML
# documentation will contain a main index with vertical navigation menus that
diff --git a/Makefile b/Makefile
index 98b7045afc..b5806c451a 100644
--- a/Makefile
+++ b/Makefile
@@ -395,7 +395,9 @@ endif
doc:
$(PYTHON) tools/doxygen_symbol_gen.py
- doxygen
+ doxygen
+ @$(PRINT) "$(GREEN)Documentation generated in docs/html$(NO_COL)\n"
+ @$(PRINT) "$(GREEN)Results can be viewed by opening docs/html/index.html in a web browser$(NO_COL)\n"
clean:
$(RM) -r $(BUILD_DIR)
diff --git a/README.md b/README.md
index 1f0f6a4f92..92b643d250 100644
--- a/README.md
+++ b/README.md
@@ -85,7 +85,7 @@ Some menu textures are compressed using a format called tkmk00. A byte-matching
Documentation available online at [https://n64decomp.github.io/mk64/](https://n64decomp.github.io/mk64/).
-Documentation generated using [Doxygen](https://www.doxygen.nl/index.html). Run `make doc -j` to test locally. Documentation resides in `docs/html`. Open index.html to view the site.
+Documentation generated using [Doxygen](https://www.doxygen.nl/index.html). Run `make doc` to test locally. Documentation resides in `docs/html`. Open index.html to view the site.
## Contributing
diff --git a/docs/basics/actors.md b/docs/actors/actors.md
similarity index 98%
rename from docs/basics/actors.md
rename to docs/actors/actors.md
index e29c397148..31dbd9c71f 100644
--- a/docs/basics/actors.md
+++ b/docs/actors/actors.md
@@ -1,4 +1,4 @@
-\page actors How Actors Work
+@page actors How Actors Work
# Actors
If you are familiar with oot or sm64 prepare to be very disappointed. Both games split actors into separate files. In an unorderly fashion, mk64 appears to place all actors in the same file save for the odd exception.
diff --git a/docs/actors/items.md b/docs/actors/items.md
new file mode 100644
index 0000000000..c81b7f90e9
--- /dev/null
+++ b/docs/actors/items.md
@@ -0,0 +1 @@
+@page items Items
diff --git a/docs/actors/objects.md b/docs/actors/objects.md
new file mode 100644
index 0000000000..cdd2565961
--- /dev/null
+++ b/docs/actors/objects.md
@@ -0,0 +1,2 @@
+@page objects Objects
+# Objects
diff --git a/docs/basics/vehicles.md b/docs/actors/vehicles.md
similarity index 94%
rename from docs/basics/vehicles.md
rename to docs/actors/vehicles.md
index 2f876c7826..679dd81989 100644
--- a/docs/basics/vehicles.md
+++ b/docs/actors/vehicles.md
@@ -1,4 +1,4 @@
-\page vehicles Vehicles
+@page vehicles Vehicles
[TOC]
diff --git a/docs/basics/actorsmenu.md b/docs/actorsmenu.md
similarity index 66%
rename from docs/basics/actorsmenu.md
rename to docs/actorsmenu.md
index 6213121b9c..f19c514ffa 100644
--- a/docs/basics/actorsmenu.md
+++ b/docs/actorsmenu.md
@@ -1,4 +1,4 @@
-\page actorsmenu Actors
+@page actorsmenu Actors
Actors are dynamic game objects usually subject to game physics such as gravity, force, and collision. They might move around the map, spin, or interactive in some manner. Alternatively, static game objects cannot move and cannot be interacted with. They can use collision but not physics. A course model and Mario Raceway's Pipe are examples of static objects. Any of the items or player karts are examples of dynamic game objects; actors.
@@ -6,100 +6,19 @@ mk64 contains two systems for implementing actors. They have been deemed as acto
The two main variables to concern yourself with are `gActorList` and `gObjectList`; the core containers of the two systems.
-`gActorList` contains:
+@ref gActorList contains:
```
trees, bushes, falling rocks, kiwano-fruit, banana, shells, piranha-plant, train wheels, rail-road crossing, cows, yoshi-valley's egg, spinning signs, palm trees, paddle for the paddle-wheeled boat, wheels for cars/trucks, etc.
```
The actor code has two main parts; the update code and the render code. The update code alters the position/rotation of the object whereas the render code displays the object on the screen.
-`gObjectList` contains:
+@ref gObjectList contains:
```
thwomps, bowser fire-breath, moles, hedgehogs, snowmen, crabs, particles, leaves, etc (also, probably penguins and birds).
```
The object system is much more complex than actors and is not well documented.
-
-\htmlonly
+@htmlonly
-
-