Well, I think the game has some potential.
Here, JSG, I tried to improve the game a little, since you included the source code. I know I'm not the neatest coder but I hope it helps, as I think this game could be really good. You'll need to make a new .dba file in the same folder as the current one, and then open it and paste this code into it to compile it. I compiled it using DBP, so it may need a little tweaking for DBC, but I don't think I used any DBP-only code.
sync on
sync rate 0
cls
sponsors:
load image "jordanstorieslogo.bmp",14
start=timer()
do
cls
paste image 14,0,0
if timer()>start+5000 or scancode()<>0 then exit
sync
loop
main_menu:
while returnkey()=1:endwhile
load image "background.png",1
set text size 12
blue=RGB(0,128,255)
white=RGB(255,255,255)
selectedItem=1
do
cls
paste image 1,0,0
`print menu items
if selectedItem=1 then ink blue,0 else ink black,0
center text 100,350,"Play Game"
if selectedItem=2 then ink blue,0 else ink black,0
center text 200,350,"Instructions"
if selectedItem=3 then ink blue,0 else ink black,0
center text 300,350,"About"
if selectedItem=4 then ink blue,0 else ink black,0
center text 400,350,"Inside"
if selectedItem=5 then ink blue,0 else ink black,0
center text 500,350,"Outside"
if selectedItem=6 then ink blue,0 else ink black,0
center text 600,350,"Exit"
`select menu items
if leftkey()=1 and hold=0 then dec selectedItem : hold=1
if rightkey()=1 and hold=0 then inc selectedItem : hold=1
if leftkey()=0 and rightkey()=0 then hold=0
if selectedItem>6 then selectedItem=1
if selectedItem<1 then selectedItem=6
`choose what to do when an item is selected
if returnkey()=1
`play game
if selectedItem=1 then goto new_game
`display instructions
if selectedItem=2
load image "instructions.png",1001
paste image 1001,64,32
sync
sync
wait key
`clear up after myself
delete image 1001
endif
`display information about the game
if selectedItem=3
load image "instructions.png",1001
paste image 1001,64,32
sync
sync
wait key
`clear up after myself
delete image 1001
endif
`quit the game
if selectedItem=4
gosub inside
endif
if selectedItem=5
gosub outside
endif
if selectedItem=6
end
endif
endif
sync
loop
return
pave:
backdrop off
if mouseclick()=1 then paste image 9,mousex(),mousey()
return
new_game:
cls
ink rgb(244,214,210),1
money#=10000
day=1
input "Hospital Name:",name$
if name$="Jordan Stories Hospital" then money#=money#+1000000 rem niiice!
if name$="" then name$="Hospital"
load object "hospital.3ds",1
point object 1,0,0,0
load image "hospitaltexture.bmp",1
texture object 1,1
load image "asphalt.png",9
load image "pave.png",7
load image "patientarriving1.png",5
paste image 5,50,50
load image "shockhim!.png",6
object_manage:
cls
start_of_day=timer()
random_time=timer()+rnd(10000)+1000
day_length=60000
do
set cursor 0,0
if timer()>start_of_day+day_length
inc day
start_of_day=timer()
endif
hours=int((timer()-start_of_day+0.0)/day_length*24.0)
minutes=int((timer()-start_of_day-hours*day_length/24.0)/(day_length/24.0)*60.0)
seconds=int((timer()-start_of_day-hours*day_length/24.0-minutes*day_length/(24.0*60.0))/(day_length/(24.0*60.0))*60.0)
if seconds>59 then seconds=seconds-60
if hours<13
time$="am"
else
hours=hours-12
time$="pm"
endif
if hours<1 then hours=12
hours$=str$(hours)
if len(hours$)<2 then hours$="0"+hours$
minutes$=str$(minutes)
if len(minutes$)<2 then minutes$="0"+minutes$
seconds$=str$(seconds)
if len(seconds$)<2 then seconds$="0"+seconds$
print "Time: ",hours$,":",minutes$,":",seconds$," ", time$
print "Day: ",day
print "Hospital Name:",name$
print "Money:",money#
if timer()>=random_time
gosub patient_arrives
random_time=timer()+rnd(10000)+1000
endif
paste image 7,550,100
mousx# = mousex()
mousy# = mousey()
imagex1#=6432
imagex2#=032
imagey1#=3362
imagey2#=062
if mousex()>550 and mousex()<650 and mousey()>66 and mousey()<130 and mouseclick()=1 then selected=1
IF selected=1 then gosub pave
sync
loop
if day#=2 then gosub patient_arrives
inside:
load object "hospitaltycoondesk.x",2
rem Position camera
position camera 100,100,100
rem Activate manual sync
sync on
rem Begin loop
do
rem Control camera with arrow keys
if upkey()=1 then move camera 10.0
if downkey()=1 then move camera -10.0
if leftkey()=1 then angley#=wrapvalue(angley#-2.0)
if rightkey()=1 then angley#=wrapvalue(angley#+2.0)
rem Update camera
xrotate camera 0.0
yrotate camera angley#
zrotate camera 0.0
rem Syncronise
sync
rem End loop
loop
patient_arrives:
clear entry buffer
perform$=""
do
cls
set cursor 0,0
print "A patient has arrived."
print "What do you want to perform Doctor? ",perform$
s$=entry$()
clear entry buffer
if returnkey()=1 then exit
if keystate(14)=1
perform$=left$(perform$,len(perform$)-1)
wait 80
else
perform$=perform$+s$
endif
sync
loop
if perform$="shock"
if money#>200
gosub shock
return
else
start=timer()
click=0
do
set cursor 0,0
cls
print "Not enough money. We need to heal more people!"
if scancode()=0 then click=1
if timer()>start+4000 or (scancode()<>0 and click=1) then exit
sync
loop
return
endif
endif
if perform$="heal"
gosub heal
return
endif
start=timer()
click=0
do
set cursor 0,0
cls
print "Yes Doctor!"
if scancode()=0 then click=1
if timer()>start+4000 or (scancode()<>0 and click=1) then exit
sync
loop
return
shock:
cls
start=timer()
click=0
do
cls
paste image 6,50+rnd(4),50+rnd(4)
if scancode()=0 then click=1
if timer()>start+4000 or (scancode()<>0 and click=1) then exit
sync
loop
dec money#, 200
return
heal:
cls
start=timer()
end1=timer()+6000
do
cls
print "Healing patient"
box 100,100,100+300,150
ink 0,0
box 101,101,100+300-1,150-1
ink rgb(255,255,255),0
box 100,100,100+(timer()-start+0.0)/(end1-start)*300,150
if timer()>end1 then exit
sync
loop
start=timer()
do
cls
print "Thank you for healing me!"
if timer()>start+1000 then print "Here is $500"
if timer()>start+2000 then exit
sync
loop
inc money#, 500
return
rem Added a return here so the program doesn't crash.
outside:
return
Heal patients and then will give you money. Shock them and they will take money. I also added a nice clock. I removed the blinking, but again things my be different between DBC and DBP. I think there is a better way to do the paving, where you just have a matrix and check the texture of different tiles to the texture of the pave, but I didn't add that in. Also, instead of loading stuff several times, I re-wrote parts so it just loads each image once. Hope it helps you in some way, and good luck!