From 6874af71c0a6429968ba081deb4659196dd570bf Mon Sep 17 00:00:00 2001 From: MegaMech Date: Tue, 16 Jan 2024 19:40:48 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20n64decom?= =?UTF-8?q?p/mk64@05ce12b4fadb5f8c81610d9f91fe0b69a822a572=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- actors.html | 32 + actorsmenu.html | 33 +- actorsmenu.js | 3 + basics.html | 8 +- basics.js | 6 +- controlflow.html | 146 + controlflow_8md.html | 100 + courses.html | 2 +- coursesmenu.js | 2 +- math_8h.js | 2 +- md_tools_doxygen_syms.html | 2 +- navtreedata.js | 127 +- navtreeindex0.js | 500 +- navtreeindex1.js | 500 +- navtreeindex10.js | 500 +- navtreeindex11.js | 500 +- navtreeindex12.js | 500 +- navtreeindex13.js | 500 +- navtreeindex14.js | 500 +- navtreeindex15.js | 500 +- navtreeindex16.js | 500 +- navtreeindex17.js | 500 +- navtreeindex18.js | 500 +- navtreeindex19.js | 500 +- navtreeindex2.js | 496 +- navtreeindex20.js | 500 +- navtreeindex21.js | 500 +- navtreeindex22.js | 500 +- navtreeindex23.js | 500 +- navtreeindex24.js | 500 +- navtreeindex25.js | 474 +- navtreeindex26.js | 496 +- navtreeindex27.js | 500 +- navtreeindex28.js | 500 +- navtreeindex29.js | 500 +- navtreeindex3.js | 472 +- navtreeindex30.js | 500 +- navtreeindex31.js | 500 +- navtreeindex32.js | 500 +- navtreeindex33.js | 500 +- navtreeindex34.js | 500 +- navtreeindex35.js | 500 +- navtreeindex36.js | 500 +- navtreeindex37.js | 500 +- navtreeindex38.js | 498 +- navtreeindex39.js | 500 +- navtreeindex4.js | 500 +- navtreeindex40.js | 500 +- navtreeindex41.js | 500 +- navtreeindex42.js | 500 +- navtreeindex43.js | 500 +- navtreeindex44.js | 500 +- navtreeindex45.js | 500 +- navtreeindex46.js | 500 +- navtreeindex47.js | 500 +- navtreeindex48.js | 500 +- navtreeindex49.js | 500 +- navtreeindex5.js | 500 +- navtreeindex50.js | 500 +- navtreeindex51.js | 500 +- navtreeindex52.js | 500 +- navtreeindex53.js | 500 +- navtreeindex54.js | 500 +- navtreeindex55.js | 500 +- navtreeindex56.js | 500 +- navtreeindex57.js | 500 +- navtreeindex58.js | 500 +- navtreeindex59.js | 498 +- navtreeindex6.js | 500 +- navtreeindex60.js | 500 +- navtreeindex61.js | 500 +- navtreeindex62.js | 500 +- navtreeindex63.js | 500 +- navtreeindex64.js | 500 +- navtreeindex65.js | 500 +- navtreeindex66.js | 500 +- navtreeindex67.js | 500 +- navtreeindex68.js | 500 +- navtreeindex69.js | 500 +- navtreeindex7.js | 500 +- navtreeindex70.js | 500 +- navtreeindex71.js | 500 +- navtreeindex72.js | 500 +- navtreeindex73.js | 500 +- navtreeindex74.js | 500 +- navtreeindex75.js | 500 +- navtreeindex76.js | 500 +- navtreeindex77.js | 498 +- navtreeindex78.js | 500 +- navtreeindex79.js | 500 +- navtreeindex8.js | 500 +- navtreeindex80.js | 500 +- navtreeindex81.js | 500 +- navtreeindex82.js | 500 +- navtreeindex83.js | 500 +- navtreeindex84.js | 500 +- navtreeindex85.js | 500 +- navtreeindex86.js | 294 +- navtreeindex9.js | 500 +- objects.html | 99 + objects_8md.html | 100 + pages.html | 24 +- search/all_10.js | 596 +-- search/all_11.js | 4 +- search/all_12.js | 530 +- search/all_13.js | 1514 +++--- search/all_14.js | 410 +- search/all_15.js | 838 ++-- search/all_16.js | 272 +- search/all_17.js | 78 +- search/all_18.js | 10 +- search/all_19.js | 18 +- search/all_1a.js | 22 +- search/all_3.js | 316 +- search/all_4.js | 5880 +++++++++++------------ search/all_5.js | 178 +- search/all_6.js | 5002 +++++++++---------- search/all_7.js | 9312 ++++++++++++++++++------------------ search/all_8.js | 156 +- search/all_9.js | 302 +- search/all_a.js | 4 +- search/all_b.js | 60 +- search/all_c.js | 410 +- search/all_d.js | 388 +- search/all_e.js | 236 +- search/all_f.js | 745 +-- search/classes_0.js | 36 +- search/classes_1.js | 68 +- search/classes_10.js | 16 +- search/classes_11.js | 80 +- search/classes_12.js | 20 +- search/classes_13.js | 90 +- search/classes_14.js | 10 +- search/classes_15.js | 4 +- search/classes_2.js | 8 +- search/classes_3.js | 28 +- search/classes_4.js | 8 +- search/classes_5.js | 4 +- search/classes_6.js | 8 +- search/classes_7.js | 4 +- search/classes_8.js | 4 +- search/classes_9.js | 8 +- search/classes_a.js | 4 +- search/classes_b.js | 4 +- search/classes_c.js | 16 +- search/classes_d.js | 14 +- search/classes_e.js | 36 +- search/classes_f.js | 24 +- search/defines_0.js | 66 +- search/defines_1.js | 266 +- search/defines_10.js | 244 +- search/defines_11.js | 204 +- search/defines_12.js | 606 +-- search/defines_13.js | 112 +- search/defines_14.js | 14 +- search/defines_15.js | 88 +- search/defines_16.js | 20 +- search/defines_17.js | 2 +- search/defines_18.js | 4 +- search/defines_19.js | 16 +- search/defines_2.js | 88 +- search/defines_3.js | 444 +- search/defines_4.js | 232 +- search/defines_5.js | 80 +- search/defines_6.js | 80 +- search/defines_7.js | 1020 ++-- search/defines_8.js | 20 +- search/defines_9.js | 62 +- search/defines_a.js | 2 +- search/defines_b.js | 26 +- search/defines_c.js | 180 +- search/defines_d.js | 168 +- search/defines_e.js | 118 +- search/defines_f.js | 346 +- search/enums_0.js | 2 +- search/enums_1.js | 2 +- search/enums_2.js | 2 +- search/enums_3.js | 2 +- search/enums_4.js | 4 +- search/enums_5.js | 4 +- search/enums_6.js | 2 +- search/enumvalues_0.js | 10 +- search/enumvalues_1.js | 10 +- search/enumvalues_10.js | 2 +- search/enumvalues_2.js | 44 +- search/enumvalues_3.js | 2 +- search/enumvalues_4.js | 4 +- search/enumvalues_5.js | 2 +- search/enumvalues_6.js | 4 +- search/enumvalues_7.js | 2 +- search/enumvalues_8.js | 2 +- search/enumvalues_9.js | 4 +- search/enumvalues_a.js | 2 +- search/enumvalues_b.js | 2 +- search/enumvalues_c.js | 8 +- search/enumvalues_d.js | 28 +- search/enumvalues_e.js | 40 +- search/enumvalues_f.js | 4 +- search/files_0.js | 58 +- search/files_1.js | 22 +- search/files_10.js | 16 +- search/files_11.js | 52 +- search/files_12.js | 16 +- search/files_13.js | 6 +- search/files_14.js | 2 +- search/files_15.js | 2 +- search/files_2.js | 12 +- search/files_3.js | 125 +- search/files_4.js | 28 +- search/files_5.js | 10 +- search/files_6.js | 8 +- search/files_7.js | 34 +- search/files_8.js | 12 +- search/files_9.js | 4 +- search/files_a.js | 8 +- search/files_b.js | 20 +- search/files_c.js | 30 +- search/files_d.js | 4 +- search/files_e.js | 155 +- search/files_f.js | 24 +- search/functions_0.js | 212 +- search/functions_1.js | 66 +- search/functions_10.js | 146 +- search/functions_11.js | 208 +- search/functions_12.js | 22 +- search/functions_13.js | 134 +- search/functions_14.js | 40 +- search/functions_15.js | 6 +- search/functions_2.js | 18 +- search/functions_3.js | 100 +- search/functions_4.js | 86 +- search/functions_5.js | 10 +- search/functions_6.js | 4782 +++++++++--------- search/functions_7.js | 114 +- search/functions_8.js | 14 +- search/functions_9.js | 110 +- search/functions_a.js | 2 +- search/functions_b.js | 34 +- search/functions_c.js | 96 +- search/functions_d.js | 28 +- search/functions_e.js | 136 +- search/functions_f.js | 96 +- search/pages_0.js | 2 +- search/pages_1.js | 4 +- search/pages_2.js | 5 +- search/pages_3.js | 2 +- search/pages_4.js | 2 +- search/pages_5.js | 2 +- search/pages_6.js | 4 +- search/pages_7.js | 2 +- search/typedefs_0.js | 2 +- search/typedefs_1.js | 12 +- search/typedefs_2.js | 4 +- search/typedefs_3.js | 4 +- search/typedefs_4.js | 4 +- search/typedefs_5.js | 4 +- search/typedefs_6.js | 4 +- search/typedefs_7.js | 16 +- search/typedefs_8.js | 12 +- search/typedefs_9.js | 2 +- search/typedefs_a.js | 8 +- search/typedefs_b.js | 26 +- search/variables_0.js | 124 +- search/variables_1.js | 98 +- search/variables_10.js | 202 +- search/variables_11.js | 4 +- search/variables_12.js | 140 +- search/variables_13.js | 530 +- search/variables_14.js | 192 +- search/variables_15.js | 594 +-- search/variables_16.js | 106 +- search/variables_17.js | 46 +- search/variables_18.js | 8 +- search/variables_19.js | 10 +- search/variables_1a.js | 4 +- search/variables_2.js | 108 +- search/variables_3.js | 156 +- search/variables_4.js | 5524 ++++++++++----------- search/variables_5.js | 74 +- search/variables_6.js | 118 +- search/variables_7.js | 8136 +++++++++++++++---------------- search/variables_8.js | 104 +- search/variables_9.js | 112 +- search/variables_a.js | 2 +- search/variables_b.js | 20 +- search/variables_c.js | 170 +- search/variables_d.js | 68 +- search/variables_e.js | 70 +- search/variables_f.js | 54 +- terminology.html | 2 +- test.html | 3 +- 291 files changed, 50459 insertions(+), 49932 deletions(-) create mode 100644 controlflow.html create mode 100644 controlflow_8md.html create mode 100644 objects.html create mode 100644 objects_8md.html diff --git a/actors.html b/actors.html index 1e6f839d2..90f5039e6 100644 --- a/actors.html +++ b/actors.html @@ -89,6 +89,38 @@ $(document).ready(function(){initNavTree('actors.html',''); initResizable(); });

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.

+

Actor setup:

// Loop through the actor list and run that particular actors behaviour.
+
for actorListSize {
+
actor = gActorList[i]
+
switch(actor->type) {
+
case ACTOR1:
+
actor_name(args, actor);
+
break;
+
case ACTOR2:
+
another_actor(args, actor);
+
break;
+
}
+
}
+
+
// Camera/Mat4 are optional
+
void actor_name(Camera, Mat4, actor) {
+
actor->pos[x] += 10; // Increase the actors X position by ten every frame or game loop.
+
actor->rot[y] -= 1; // Decrease the actors Y rotation by one every frame or game loop.
+
+
// Increase the actors velocity until it reaches fifteen.
+
if (actor->velocity[z] < 15) {
+
actor->velocity[z] += 5 // Increase the actors Z velocity by five every frame.
+
}
+
}
+
struct Actor gActorList[ACTOR_LIST_SIZE]
Definition: code_800029B0.c:147
+
f32 Mat4[4][4]
Definition: common_structs.h:13
+
Definition: camera.h:26
+

Check actor_types.h for a full list of options. You can create a new actor struct for your actor and customize it or use a predefined one. All actor structs must retain the same size. Generally, the types in the struct may be modified so long as type and flags stay the same as those are used elsewhere.

+

See update_obj_railroad_crossing for an example of how a timer may be setup and used.
+

+

Audio may be activated in the following method: func_800C98B8(actor->pos, actor->velocity, s32_audio_flag);

+

For more complex uses such as distanceFrom and collision, you will need to analyze the other actors.

diff --git a/actorsmenu.html b/actorsmenu.html index 707c670a4..3ce52feb8 100644 --- a/actorsmenu.html +++ b/actorsmenu.html @@ -88,8 +88,23 @@ $(document).ready(function(){initNavTree('actorsmenu.html',''); initResizable();

+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. -How actors in mk64 works. There are two kinds of actors. +mk64 contains two systems for implementing actors. They have been deemed as actors and objects, albeit an explicit or categorical difference between the two has yet to be determined. The running theory is that the systems were designed by different developers that were perhaps not communicating resulting in game objects being randomly distributed between the two. + +The two main variables to concern yourself with are `gActorList` and `gObjectList`; the core containers of the two systems. + +`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: +``` +thwomps, bowser fire-breath, moles, hedgehogs, snowmen, crabs, etc (also, probably penguins and birds). +``` +The object system is much more complex than actors and is not well documented.