If you appreciate the work done within the wiki, please consider supporting The Cutting Room Floor on Patreon. Thanks for all your support!

BC Racers (32X)

From The Cutting Room Floor
Jump to navigation Jump to search

Title Screen

BC Racers

Developer: Core Design
Publisher: Front Street Publishing
Platform: 32X
Released in US: 1995


SourceIcon.png This game has uncompiled source code.


A fairly mediocre racing game. The 32X version in particular is considered to be the worst version of this game.

Multi-Edit Macro Code

Present at 0x2F63A4 in the ROM is a chunk of macro code from an old version of Multi-Edit.

turn_int = DlgExecute( dlg, 100, "Warning!", FILELOCK_HELPLINK, "", DLG_ScreenCenter );
DlgKill( dlg );
#ELSE
RM('MEERROR^MessageBox /NW=1/T=Warning/M=Your configuration files are locked.  Before unlocking them, insure that there are NOT multiple copies of Multi-Edit running with your user id.');
RM('USERIN^XMENU /B=1/X=25/Y=8/T=1/L=Action:/M=Unlock configuration files()Ignore and leave files locked()');
kill_box;
#ENDIF
if(  return_int == 1  ) {
int tr = refresh;
str tstr;
refresh = false;
make_message('Unlocking configuration files ');
working;
delete_window;
if(  user_id == ''  ) {
if(  (Global_Str('@DB_EXTENSION') == '')  ) {
tstr = me_path + '*.DB';
call unlock_files; } else { tstr = me_path + '*.' + Global_Str('@DB_EXTENSION');
call unlock_files; } tstr = me_path + '*.ME';
call unlock_files;
} else {
//          tstr = me_path + user_id + '.USR\*.*';
return_str = '<USER_PATH>*.*';
rm('XlateCmdLine');
tstr = return_str;
call unlock_files;
} tstr = user_id + 'MEERR.TMP';
call unlock_files;
//        tstr = me_path + user_id + '*.TMP';
return_str = '<USER_PATH>*.TMP';
rm('XlateCmdLine');
tstr = return_str;
call unlock_files;
goto config_unlocked;
unlock_files: int jx = FIRST_FILE(TSTR);
while(  jx == 0  ) { if(last_file_attr & 1) { if( switch_file( caps(fexpand( get_path( tstr ) + last_file_name )))) { if(file_changed) save_file;
delete_window;
} Set_File_Attr( get_path( tstr ) + last_file_name, last_file_attr & $FE );
} jx = next_file;
} ret;
config_unlocked: make_message('Configuration files unlocked.');
refresh = tr;
} return();
} void ProcessCmdLine( int m = parse_int("/M=", mparm_str) ) { } macro PARMLOAD  {
/*******************************************************************************
MULTI_EDIT MACRO
Name: PARMLOAD
Description:  This macro is called by Multi-Edit directly after STARTUP.  It
takes care of loading in files and executing macros from the
command line
 (C) Copyright 1991 by American Cybernetics, Inc.
*******************************************************************************/
int parmload_mode = parse_int("/M=", mparm_str);
#ifdef DEMO if( !parmload_mode) {
// special stuff for the demo to support Evolve
if (global_int('!EVgDialectId')) { 
/* make_message("!EVgDialectId=" + str(global_int('!EVgDialectId')));
read_key;
*/ RM("EVINIT");
} } #endif // DEMO
int Load_Count,Parm_Number;
int cur_id = window_id;
int jx, tw, tr, mouse_initialized = FALSE ;
int restore_enable = 1, no_restore = 0, Goto_L_Num = 0;
str TStr, TStr2, Goto_F_Name[80], session_name[128] = "";
str wdir[512] = ""; set_global_int('MENU_LEVEL', global_int('MENU_LEVEL') + 1 ); if( !parmload_mode ) { #IFNDEF Windows
make_message('Welcome to Multi-Edit V' + Version + '.  Press ' + global_str('!HM_KEY1') + ' for help.');
#ELSE make_message('Welcome to Multi-Edit V' + Version + '.  Press <F1> for help.'); #ENDIF refresh = false; working; RM('.STARTUP^STARTUP'); } refresh = false; working; if( !parmload_mode ) {
/* Check and see if MECONFIG is read_only.  If so then prompt the
user, to see if he/she wants them unlocked */
tw = window_id;
if(  user_id == ''  ) { tstr = me_path + 'MECONFIG'; } else {
// 7.00.0: tstr = me_path + user_id + '.USR\MECONFIG';
// 7.00.a: consult the USER_PATH for user directory
return_str = '<USER_PATH>MECONFIG';
rm('XlateCmdLine'); tstr = return_str; }
/* This provides support for a default DB file extension to be configured.  It
is overridden if the calling macro specifies an extension */
if(  (Global_Str('@DB_EXTENSION') == '')  ) { Tstr = Tstr + '.DB'; } else { Tstr = Tstr + '.' + Global_Str('@DB_EXTENSION'); }
if(  switch_file( tstr )  ) {
if(  read_only  ) {
call init_mouse;
ConfigLocked(); } } }
switch_win_id( tw );
error_level = 0;
Error_Level = 0;
load_count = parmload_mode;
Parm_Number = 1;
refresh = false;
while(  Parm_Number <= PARAM_COUNT  ) { TStr = PARAM_STR(Parm_Number);
TStr = Caps(Remove_Space(TStr));
if(  Xpos(Copy(Tstr,1,1),'/-',1)  ) { Tstr = Copy(Tstr,2,80);
if ( TStr == "CD" ) {                                           // ldh
++Parm_Number;                                                // ldh
if ( Param_Str( Parm_Number ) != ""  ) {                      // ldh
TStr = Caps( Remove_Space( Param_Str( Parm_Number ) ) );    // ldh
if ( Svl( TStr ) > 3 ) {                                    // ldh
if ( Copy( TStr, Svl( TStr ), 1 ) == "\\" ) {             // ldh
TStr = Copy( TStr, 1, Svl( TStr ) - 1 );                // ldh }                                                         // ldh.......}                                                           // ldh.......Change_Dir( TStr );                                         // ldh......}                                                             // ldh.....}                                                               // ldh.....else if ( Copy (TStr, 1, 3) == "WK=" ).....{......wdir = Copy (TStr, 4, 128);.....}.....else if ( TStr == "SM" ).....{......restore_enable = False;......no_restore = True;......RM("SESSMGR /NOSWITCH=1");.....}.....else if ( copy(tstr,1,2) == "SR" ).....{......int tid = window_id;......int tr = refresh;......refresh = false;......if(LocateDbPage("MECONFIG", "SESSMGR.CFG", false))......{.......down;.......session_name = get_line;.......restore_enable = TRUE;......}......switch_win_id(tid);......refresh = tr;.....}.....else if ((Copy( TStr, 1, 2) == "SN" ) &&.......(Global_Int('@RESTORE') == 3)) // only if encoded status files are active
{
// switch to named session
restore_enable = True;
session_name = copy(tstr,3,128); 
} else if ( Copy( TStr, 1, 1) == "@" )                            // ldh
// Load files from a file list
refresh = false;
restore_enable = False;
Set_Global_Int('LOAD_COUNT',Load_Count);
int tid = window_id;
create_window;
window_attr = 0x81;
tstr = copy(tstr,2,128);
load_file( tstr );
int tag_win = window_id;
make_message("");
if(error_level) { call init_mouse;
rm("messagebox /B=2/T=Error/M=List file " + tstr + " not found.");
 } else { switch_win_id( tid );
RM('LDFILES /NRL=1/TAG=' + str(tag_win) + '/DE=1/CW=2/LC=' + str(load_count));
Load_Count = return_int;
if(  (Load_Count == 1)  ) {
/* Save the first file loaded so that if the user specifies a line number to
go to, we can do it. */
Goto_F_Name = File_Name;
 } tid = window_id;
} refresh = false;
if( switch_win_id( tag_win )) delete_window;
switch_win_id(tid);
} else if(  TStr == 'NR'  ) { if( !parmload_mode ) { restore_enable = False;
no_restore = TRUE;
} } e

Present at 0x2FF4F2 is another chunk of this macro code.

/L=6/C=4/ATTR=
D[=.=.=
Version 5
/L=7/C=20=.=.=
Copyright(c) 1988, 1993 by American Cybernetics, Inc.
/L=9/C=2=.=.=
Multi-Edit is protected under United States copyright law.  Copies may be  made for  the puro NOT locate source
*              /TF=filename  The tag filename to use
*                        (do not auto determine)
 -------------------------------------------------- */
{   str       tag_id = parse_str("/TAGID=",mparm_str),
            tag_language = tag_get_language(get_extension(file_name)),
            backtrack_data;
int
src_win = window_id,
tag_win,
            force_tag_id = (tag_id != ""),
next_tag = parse_int("/NEXT=", mparm_str);
  g_was_maximized = IsZoomed(window_Handle);
  backtrack_data = tag_init_backtrk();
again:
refresh = false;
// If we are doing a NEXT tag then do not start from the top,
// and use the last tag instead of the current word
  if ((!next_tag) && (!force_tag_id)) { if( parse_int("/MAN=",mparm_str))
{ return_str = "";
rm("USERIN^QUERYBOX /P=Enter Tag:/W=32/ML=80/T=Multi-Tags/H="+TAGPROMPT_HELPLINK);
if( return_int <= 0 ) goto exit } else { rm("tag_parse_text");
tag_id = return_str;
if( tag_id == "" ) {
make_message( "No valid tag." );
switch_win_id( src_win );
goto exit;
}
}
rm( 'tag_find_file /TF=' + parse_str("/TF=", mparm_str) );
if( !return_int ) {
make_message( 'No tag file found.' );
switch_win_id( src_win );
goto exit;
}
  if (!next_tag) { tof; } else { tag_id = global_str( 'LAST_TAG_FIND' );
eol;
}
ignore_case = TRUE;
reg_exp_stat = TRUE;
if( search_fwd( '%' + tag_id + '[ |9]', 0 ) ) {
    tag_store_find(tag_language, tag_id, backtrack_data);
//    set_global_str('LAST_TAG_FIND', tag_id );
return_int = 1;
if( !parse_int("/FO=", mparm_str )) { /* make_message("tag_locate " + str(g_was_maximized) + " " + file_name);
read_key;
*/       RM('tag_goto /SAVEZOOM=1/OW=' + str( src_win ));
if( return_int == 2  ) { next_tag = TRUE;
goto again;
} } } else { make_message( 'No tag found.' );
switch_win_id( src_win );
return_int = 0;
 } exit: } macro tag_parse_text { str ls[40] = tag_get_language(get_extension(file_name));
mark_pos;
again: return_str = "";
right;
while( (c_col > 1) && xpos(cur_char, tag_delimits, 1) ) left;
while( (c_col > 1) && !xpos(cur_char, tag_delimits,1) ) left;
/* if(( ls == "C") || (ls == "C++") ) { if( cur_char == "." ) { left;
while( (c_col > 1) && !xpos(cur_char, tag_delimits,1) ) left;
if( xpos(cur_char, tag_delimits,1 )) right;
return_str = shorten_str(get_word( tag_delimits )) + "