Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -55,4 +55,6 @@ dkms.conf

bin/
obj/
*.z64
*.z64
*.n64
*.v64
8 changes: 6 additions & 2 deletions lib/libnbke.a
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,11 @@ kb_vi_counter = 0x80274578; /* need nbke */
bk_controller_raw = 0x802812B8;

bk_take_me_there = 0x802E4078;
bk_transformation_set = 0x8029a95c;

bk_player_model_update = 0x80291d04;
bk_player_movement_state_set = 0x8029a72c;
bk_transformation_set = 0x8029a95c;
bk_idle_movement_index_get = 0x8029bf78;

bk_item_array = 0x80385f30;
bk_item_get_count = 0x80345fa0;
Expand All @@ -27,4 +31,4 @@ bk_mumbo_token_flag_set = 0x803215d0;
bk_empty_honeycomb_flag_get = 0x803212e4;
bk_empty_honeycomb_flag_set = 0x80321364;

bk_high_note_scores = 0x80385ff0;
bk_high_note_scores = 0x80385ff0;
6 changes: 5 additions & 1 deletion lib/libnbke11.a
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,8 @@ kb_vi_counter = 0x80274578; /* need nbke-1.1 */
bk_controller_raw = 0x80284754;

bk_take_me_there = 0x802e30b8;
bk_transformation_set = 0x802997d8;

bk_player_model_update = 0x80290b44;
bk_player_movement_state_set = 0x8029959c;
bk_transformation_set = 0x802997cc;
bk_idle_movement_index_get = 0x8029ae00;
6 changes: 5 additions & 1 deletion lib/libnbkj.a
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,8 @@ kb_vi_counter = 0x80274578;
bk_controller_raw = 0x80284754;

bk_take_me_there = 0x802e31d8;
bk_transformation_set = 0x802997fC;

bk_player_model_update = 0x80290b74;
bk_player_movement_state_set = 0x802995cc;
bk_transformation_set = 0x802997fC;
bk_idle_movement_index_get = 0x8029ae30;
7 changes: 6 additions & 1 deletion lib/libnbkp.a
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,9 @@ kb_vi_counter = 0x80274578; /* need nbkp */
bk_controller_raw = 0x802810d8;

bk_take_me_there = 0x802E4268;
bk_transformation_set = 0x8029a95c;

bk_player_model_update = 0x80291b24;
bk_player_movement_state_set = 0x8029a56c;
bk_transformation_set = 0x8029a79c;
bk_idle_movement_index_get = 0x8029bdb8;

25 changes: 20 additions & 5 deletions src/kb/bk.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,16 @@ typedef struct{
int8_t y;
} bk_controller_t;

typedef enum transformations {
BK_TRANS_BANJO = 0x01,
BK_TRANS_TERMITE = 0X02,
BK_TRANS_PUMPKIN = 0X03,
BK_TRANS_WALRUS = 0X04,
BK_TRANS_CROC = 0X05,
BK_TRANS_BEE = 0X06,
BK_TRANS_WISHYWASHY = 0X07,
} bk_transformation_t;

typedef enum bK_item{
BK_ITEM_SKULL_HOURGLASS = 0x1,
BK_ITEM_PROPELLOR_TIMER = 0x3,
Expand Down Expand Up @@ -81,11 +91,16 @@ bk_extern int32_t bk_vi_counter;
bk_extern bk_controller_t bk_controller_raw;
bk_extern uint8_t bk_high_note_scores;

bk_extern int game_update (void);
bk_extern void load_code_stage2 (void);
bk_extern void load_code_stage1 (void);
bk_extern void bk_gfx_finish (Gfx **p_gfx_p);
bk_extern void bk_take_me_there (uint32_t map, uint32_t exit, uint32_t warp_type);
bk_extern int game_update (void);
bk_extern void load_code_stage2 (void);
bk_extern void load_code_stage1 (void);
bk_extern void bk_gfx_finish (Gfx **p_gfx_p);
bk_extern void bk_take_me_there (uint32_t map, uint32_t exit, uint32_t warp_type);
bk_extern void bk_transformation_set (uint32_t transform);
bk_extern uint32_t bk_idle_movement_index_get (void);
bk_extern void bk_player_movement_state_set (uint32_t movement_state_indx);
bk_extern void bk_player_model_update (void);


bk_extern uint32_t bk_item_get_count (uint32_t item_index);
bk_extern uint32_t bk_item_array;
Expand Down
6 changes: 4 additions & 2 deletions src/kb/kb.c
Original file line number Diff line number Diff line change
Expand Up @@ -89,8 +89,10 @@ void init(void){
menu_init(main_menu, 20, 30);

main_menu->selected_item = menu_button_add(main_menu, 0, 0, "return", main_menu_on_activate, NULL);
menu_submenu_add(main_menu, 0, 1, "warps", create_warps_menu());
menu_submenu_add(main_menu, 0, 2, "watches", create_watches_menu());
menu_submenu_add(main_menu, 0, 1, "transformations", create_transformations_menu());
menu_submenu_add(main_menu, 0, 2, "warps", create_warps_menu());
menu_submenu_add(main_menu, 0, 3, "watches", create_watches_menu());

menu_submenu_add(main_menu, 0, 5, "items", create_items_menu());

kb.menu_active = 0;
Expand Down
1 change: 1 addition & 0 deletions src/kb/kb.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ typedef struct {

extern kb_ctxt_t kb;

menu_t *create_transformations_menu(void);
menu_t *create_warps_menu(void);
menu_t *create_watches_menu (void);

Expand Down
29 changes: 29 additions & 0 deletions src/kb/kb_transformations_menu.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#include <stdlib.h>
#include <libundermine.h>
#include "kb.h"
#include "bk.h"

static int set_transformation_proc(event_handler_t *handler, menu_event_t event, void **data){
uint32_t transformation = (uint32_t)handler->callback_data & 0xFF;
bk_transformation_set(transformation);
bk_player_model_update();
uint32_t idle = bk_idle_movement_index_get();
bk_player_movement_state_set(idle);
//todo: force control if washing machine

return 1;
}

menu_t *create_transformations_menu(){
menu_t *trans_menu = malloc(sizeof(*trans_menu));
menu_init(trans_menu,0,0);
trans_menu->selected_item = menu_button_add(trans_menu,0,0,"return",menu_return,NULL);
menu_button_add(trans_menu, 0, 1, "banjo", set_transformation_proc, (void*)BK_TRANS_BANJO);
menu_button_add(trans_menu, 0, 2, "termite", set_transformation_proc, (void*)BK_TRANS_TERMITE);
menu_button_add(trans_menu, 0, 3, "crocodile", set_transformation_proc, (void*)BK_TRANS_CROC);
menu_button_add(trans_menu, 0, 4, "walrus", set_transformation_proc, (void*)BK_TRANS_WALRUS);
menu_button_add(trans_menu, 0, 5, "pumpkin", set_transformation_proc, (void*)BK_TRANS_PUMPKIN);
menu_button_add(trans_menu, 0, 6, "bee", set_transformation_proc, (void*)BK_TRANS_BEE);
menu_button_add(trans_menu, 0, 7, "washing machine", set_transformation_proc, (void*)BK_TRANS_WISHYWASHY);
return trans_menu;
}
4 changes: 2 additions & 2 deletions src/kb/scenes.c
Original file line number Diff line number Diff line change
Expand Up @@ -359,7 +359,7 @@ static kb_scene_t MMM_scenes[16] = {
}
},
{ "rain barrel",
0x2E, 1,
0x2F, 2,
(kb_entrance_t[]){
{0x1, "downspout"},
{0x2, "bottom"},
Expand Down Expand Up @@ -511,7 +511,7 @@ static kb_scene_t CCW_spring_scenes[5] = {
}
},
{ "zubba's hive",
0x5A, 1,
0x5B, 1,
(kb_entrance_t[]){
{0x1, ""},
}
Expand Down