forked from n64decomp/sm64
-
Notifications
You must be signed in to change notification settings - Fork 2
/
bingo_guide.txt
21 lines (19 loc) · 1.58 KB
/
bingo_guide.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
1. bingo.h: Add a new BingoObjectiveType and BingoObjectiveIcon. Add or reuse a BingoObjectiveUpdate.
2. text_strings.h.in: Add a new TEXT_ that will describe your objective on the Options screen.
3. textures/segment2/custom: Add a new 16x16 PNG as your icon.
4. bingo_objective_info.c: Include your texture. Add an entry connecting your type, option text, icon, and texture.
5. bingo_objective_init.c: Write a bingo_objective_*_init() function.
5.2. bingo.h: Write or reuse a *ObjectiveData struct and add it to the BingoObjective struct.
6. bingo_objective_func.c: Write an objective_*() function that uses your BingoObjectiveUpdate.
7. bingo_board_setup.c: Modify the ObjectiveWeight arrays to spawn your objective.
7.1. bingo_board_setup.c: Modify the are_duplicates() function appropriately.
8. bingo_descriptions.c: Add a description in describe_objective().
9. bingo_titles.c: Add a title in get_objective_title().
10. elsewhere: Call bingo_update() with your BingoObjectiveUpdate. Modify global variables with the gb* prefix if need be.
11. If your objective is game-modifying:
11.1. bingo.h: Add a new BingoModifier.
11.2. star_select.c and others: Use your new BingoModifier, and add a new star model.
12. If your objective is to collect/kill unique instances of items/enemies:
12.1. bingo_tracking_collectables.c: Add a new MAX_ amount and modify get_index_range().
12.2. Call `o->oBingoId = get_unique_id(BINGO_UPDATE_XXX, o->oPosX, o->oPosY, o->oPosZ)` in the object's init function
12.3. Check `if (is_new_kill(BINGO_UPDATE_XXX, o->oBingoId)) {` before the bingo_update() call