/usr/lib/games/solarwolf/main.py is in solarwolf 1.5-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 | """main module, starts game and main loop"""
import pygame
import game, gfx, snd, txt, input
import allmodules
import players, gamepref
#import psyco
#at this point, all needed pygame modules should
#be imported, so they can be initialized at the
#start of main()
def main(args):
try:
gamemain(args)
except KeyboardInterrupt:
print 'Keyboard Interrupt...'
print 'Exiting'
def gamemain(args):
#initialize all our code (not load resources)
pygame.init()
game.clock = pygame.time.Clock()
players.load_players()
input.load_translations()
gamepref.load_prefs()
size = 800, 600
full = game.display
if '-window' in args:
full = 0
gfx.initialize(size, full)
pygame.display.set_caption('SolarWolf')
if not '-nosound' in args:
snd.initialize()
input.init()
if not txt.initialize():
raise pygame.error, "Pygame Font Module Unable to Initialize"
#create the starting game handler
from gameinit import GameInit
from gamefinish import GameFinish
game.handler = GameInit(GameFinish(None))
#set timer to control stars..
pygame.time.set_timer(pygame.USEREVENT, 1000)
#psyco.full()
gamestart = pygame.time.get_ticks()
numframes = 0
#random.seed(0)
#main game loop
lasthandler = None
while game.handler:
numframes += 1
handler = game.handler
if handler != lasthandler:
lasthandler = handler
if hasattr(handler, 'starting'):
handler.starting()
for event in pygame.event.get():
if event.type == pygame.USEREVENT:
fps = game.clock.get_fps()
#print 'FRAMERATE: %f fps' % fps
gfx.starobj.recalc_num_stars(fps)
continue
elif event.type == pygame.ACTIVEEVENT:
if event.state == 4 and event.gain:
#uniconified, lets try to kick the screen
pygame.display.update()
elif event.state == 2:
if hasattr(game.handler, 'gotfocus'):
if event.gain:
game.handler.gotfocus()
else:
game.handler.lostfocus()
continue
if event.type == pygame.KEYDOWN and event.key == pygame.K_RETURN:
if event.mod&pygame.KMOD_ALT:
game.display = not game.display
gfx.switchfullscreen()
continue
inputevent = input.translate(event)
if inputevent.normalized != None:
inputevent = input.exclusive((input.UP, input.DOWN, input.LEFT, input.RIGHT), inputevent)
handler.input(inputevent)
elif event.type == pygame.QUIT:
game.handler = None
break
handler.event(event)
handler.run()
game.clockticks = game.clock.tick(40)
#print 'ticks=%d rawticks=%d fps=%.2f'%(game.clock.get_time(), game.clock.get_rawtime(), game.clock.get_fps())
gfx.update()
while not pygame.display.get_active():
pygame.time.wait(100)
pygame.event.pump()
#pygame.time.wait(10)
gameend = pygame.time.get_ticks()
runtime = (gameend - gamestart) / 1000.0
#print "FINAL FRAMERATE: ", numframes, runtime, numframes/runtime
#game is finished at this point, do any
#uninitialization needed
input.save_translations()
players.save_players()
gamepref.save_prefs()
pygame.quit()
|