mirror of
				https://github.com/coop-deluxe/sm64coopdx.git
				synced 2025-10-30 08:01:01 +00:00 
			
		
		
		
	* Add new dialog functions * Add missing symbols to charmap * Fix the crashing * Add braces to if statement * Implement Isaac's suggestion * Add override return type to autogen * Update comment * Add text field to `DialogEntry` * wtf?? * Peachy requests
		
			
				
	
	
		
			88 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
// == dialog ==
 | 
						|
// (defines en_dialog_table etc.)
 | 
						|
 | 
						|
#define DEFINE_DIALOG(id, _1, _2, _3, _4, _len) \
 | 
						|
    static u8 dialog_text_ ## id[_len] = { 0xFF };
 | 
						|
 | 
						|
#include "dialogs.h"
 | 
						|
 | 
						|
#undef DEFINE_DIALOG
 | 
						|
#define DEFINE_DIALOG(id, unused, linesPerBox, leftOffset, width, _) \
 | 
						|
    static const struct DialogEntry dialog_entry_orig_ ## id = { \
 | 
						|
        unused, linesPerBox, leftOffset, width, dialog_text_ ## id, NULL \
 | 
						|
    };
 | 
						|
 | 
						|
#include "dialogs.h"
 | 
						|
 | 
						|
#undef DEFINE_DIALOG
 | 
						|
#define DEFINE_DIALOG(id, unused, linesPerBox, leftOffset, width, _) \
 | 
						|
    static struct DialogEntry dialog_entry_ ## id = { \
 | 
						|
        unused, linesPerBox, leftOffset, width, dialog_text_ ## id, NULL \
 | 
						|
    };
 | 
						|
 | 
						|
#include "dialogs.h"
 | 
						|
 | 
						|
#undef DEFINE_DIALOG
 | 
						|
#define DEFINE_DIALOG(id, _1, _2, _3, _4, _5) &dialog_entry_orig_ ## id,
 | 
						|
 | 
						|
const struct DialogEntry *const seg2_dialog_original[] = {
 | 
						|
#include "dialogs.h"
 | 
						|
    NULL
 | 
						|
};
 | 
						|
 | 
						|
#undef DEFINE_DIALOG
 | 
						|
#define DEFINE_DIALOG(id, _1, _2, _3, _4, _5) &dialog_entry_ ## id,
 | 
						|
 | 
						|
const struct DialogEntry *const seg2_dialog_table[] = {
 | 
						|
#include "dialogs.h"
 | 
						|
    NULL
 | 
						|
};
 | 
						|
 | 
						|
// == courses ==
 | 
						|
// (defines en_course_name_table etc.)
 | 
						|
// The game duplicates this in levels/menu/leveldata.c in EU, so we split
 | 
						|
// it out into a separate include file.
 | 
						|
 | 
						|
#define COURSE_TABLE seg2_course_name_table
 | 
						|
#include "define_courses.inc.c"
 | 
						|
 | 
						|
// == acts ==
 | 
						|
// (defines en_act_name_table etc.)
 | 
						|
 | 
						|
#define COURSE_ACTS(id, name, a,b,c,d,e,f) \
 | 
						|
    static u8 act_name_ ## id ## _1[a] = { 0xFF }; \
 | 
						|
    static u8 act_name_ ## id ## _2[b] = { 0xFF }; \
 | 
						|
    static u8 act_name_ ## id ## _3[c] = { 0xFF }; \
 | 
						|
    static u8 act_name_ ## id ## _4[d] = { 0xFF }; \
 | 
						|
    static u8 act_name_ ## id ## _5[e] = { 0xFF }; \
 | 
						|
    static u8 act_name_ ## id ## _6[f] = { 0xFF };
 | 
						|
 | 
						|
#define SECRET_STAR(id, name)
 | 
						|
#define CASTLE_SECRET_STARS(str)
 | 
						|
 | 
						|
#undef EXTRA_TEXT
 | 
						|
#define EXTRA_TEXT(id, str) \
 | 
						|
    static u8 extra_text_ ## id[str] = { 0xFF };
 | 
						|
 | 
						|
#include "courses.h"
 | 
						|
 | 
						|
#undef COURSE_ACTS
 | 
						|
#undef EXTRA_TEXT
 | 
						|
 | 
						|
#define COURSE_ACTS(id, name, a,b,c,d,e,f) \
 | 
						|
    act_name_ ## id ## _1, act_name_ ## id ## _2, act_name_ ## id ## _3, \
 | 
						|
    act_name_ ## id ## _4, act_name_ ## id ## _5, act_name_ ## id ## _6,
 | 
						|
#define EXTRA_TEXT(id, str) extra_text_ ## id,
 | 
						|
 | 
						|
const u8* seg2_act_name_table[] = {
 | 
						|
#include "courses.h"
 | 
						|
    NULL
 | 
						|
};
 | 
						|
 | 
						|
const u8* seg2_act_name_table_original[] = {
 | 
						|
#include "courses.h"
 | 
						|
    NULL
 | 
						|
};
 | 
						|
 | 
						|
#include "dialog_assets.inc.c"
 | 
						|
#include "courses_assets.inc.c"
 |