'Hamster Republic Productions Classic Game Source Code '(C) Copyright Brian Fisher and James Paige and Hamster Republic Productions 'GPL software: Please read LICENSE.TXT ' 'This is the unreleased "Bob the Hamster 2", a side-scrolling platform jumper ' #include "compat.bi" #include "allmodex.bi" #include "common.bi" 'Local subs and functions DECLARE SUB keyboardsetup () REDIM SHARED keyv(55, 1) SUB load_map(file_name AS STRING, map() AS INTEGER, pass() AS INTEGER) DIM prefix AS STRING prefix = data_file("maps" & SLASH & file_name) xbload prefix & ".map", map(), "map tile data file: " & file_name xbload prefix & ".pas", pass(), "map passability data file: " & file_name END SUB SUB playsong (song_name AS STRING) loadsong data_file("music" & SLASH & song_name & ".mid") END SUB FUNCTION data_file(file_name AS STRING) AS STRING RETURN workingdir & "data" & SLASH & file_name END FUNCTION FUNCTION soundfile (sfxnum AS INTEGER) AS STRING RETURN data_file("sfx" & SLASH & sfxnum & ".ogg") END FUNCTION SUB keyboardsetup () 'There is a different implementation of this in yetmore2 for GAME DIM keyconst(207) AS STRING = {"1","2","3","4","5","6","7","8","9","0","-","=","","","q","w","e","r","t","y","u","i","o","p","[","]","","","a","s","d","f","g","h","j","k","l",";","'","`","","\","z","x","c","v","b","n","m",",",".","/", _ "!","@","#","$","%","^","&","*","(",")","_","+","","","Q","W","E","R","T","Y","U","I","O","P","{","}","","","A","S","D","F","G","H","J","K","L",":"," ","~","","|","Z","X","C","V","B","N","M","<",">","?"} DIM temp AS STRING DIM AS INTEGER j, i FOR j = 0 TO 1 FOR i = 2 TO 53 temp = keyconst((i - 2) + j * 52) IF temp <> "" THEN keyv(i, j) = ASC(temp) ELSE keyv(i, j) = 0 NEXT i NEXT j keyv(40, 1) = 34 END SUB FUNCTION strgrabber (s AS STRING, maxl AS INTEGER, no_space AS INTEGER = YES) AS INTEGER STATIC do_setup AS INTEGER = YES DIM shift AS INTEGER DIM i AS INTEGER DIM old AS STRING IF do_setup THEN keyboardsetup do_setup = NO END IF old = s '--BACKSPACE support IF keyval(14) > 1 AND LEN(s) > 0 THEN s = LEFT(s, LEN(s) - 1) '--SHIFT support shift = 0 IF keyval(54) > 0 OR keyval(42) > 0 THEN shift = 1 '--adding chars IF LEN(s) < maxl THEN IF keyval(57) > 1 THEN IF no_space = NO THEN '--SPACE support s = s + " " END IF ELSE '--all other keys FOR i = 2 TO 53 IF keyval(i) > 1 AND keyv(i, shift) > 0 THEN s = s + CHR(keyv(i, shift)) EXIT FOR END IF NEXT i END IF END IF 'Return true of the string has changed RETURN (s <> old) END FUNCTION