comparison eosd @ 428:f41a26971a19

Remove all Loader uses from outside pytouhou.games, and add a --no-music option to disable bgm.
author Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
date Tue, 16 Jul 2013 21:17:22 +0200
parents 52829ebe2561
children 77c0e9a53795
comparison
equal deleted inserted replaced
427:0604f4fbbe3c 428:f41a26971a19
40 parser.add_argument('--fps-limit', metavar='FPS', default=60, type=int, help='Set fps limit') 40 parser.add_argument('--fps-limit', metavar='FPS', default=60, type=int, help='Set fps limit')
41 parser.add_argument('--debug', action='store_true', help='Set unlimited continues, and perhaps other debug features.') 41 parser.add_argument('--debug', action='store_true', help='Set unlimited continues, and perhaps other debug features.')
42 parser.add_argument('--fixed-pipeline', action='store_true', help='Use the fixed pipeline instead of the new programmable one.') 42 parser.add_argument('--fixed-pipeline', action='store_true', help='Use the fixed pipeline instead of the new programmable one.')
43 parser.add_argument('--no-background', action='store_false', help='Disable background display (huge performance boost on slow systems).') 43 parser.add_argument('--no-background', action='store_false', help='Disable background display (huge performance boost on slow systems).')
44 parser.add_argument('--no-particles', action='store_false', help='Disable particles handling (huge performance boost on slow systems).') 44 parser.add_argument('--no-particles', action='store_false', help='Disable particles handling (huge performance boost on slow systems).')
45 parser.add_argument('--no-music', action='store_false', help='Disable background music.')
45 parser.add_argument('--hints', metavar='HINTS', default=None, help='Hints file, to display text while playing.') 46 parser.add_argument('--hints', metavar='HINTS', default=None, help='Hints file, to display text while playing.')
46 parser.add_argument('--verbosity', metavar='VERBOSITY', choices=['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'], help='Select the wanted logging level.') 47 parser.add_argument('--verbosity', metavar='VERBOSITY', choices=['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'], help='Select the wanted logging level.')
47 48
48 args = parser.parse_args() 49 args = parser.parse_args()
49 50
54 import pyximport 55 import pyximport
55 pyximport.install() 56 pyximport.install()
56 57
57 from pytouhou.ui.window import Window 58 from pytouhou.ui.window import Window
58 from pytouhou.resource.loader import Loader 59 from pytouhou.resource.loader import Loader
59 from pytouhou.game.background import Background
60 from pytouhou.ui.gamerunner import GameRunner 60 from pytouhou.ui.gamerunner import GameRunner
61 from pytouhou.games.eosd import EoSDGame 61 from pytouhou.games.eosd import EoSDGame
62 from pytouhou.game.game import GameOver 62 from pytouhou.game.game import GameOver
63 from pytouhou.game.player import PlayerState 63 from pytouhou.game.player import PlayerState
64 from pytouhou.formats.t6rp import T6RP, Level 64 from pytouhou.formats.t6rp import T6RP, Level
95 EoSDGame.cleanup(self) 95 EoSDGame.cleanup(self)
96 96
97 97
98 def main(path, data, stage_num, rank, character, replay, save_filename, 98 def main(path, data, stage_num, rank, character, replay, save_filename,
99 skip_replay, boss_rush, fps_limit, single_buffer, debug, 99 skip_replay, boss_rush, fps_limit, single_buffer, debug,
100 fixed_pipeline, display_background, display_particles, hints, 100 fixed_pipeline, enable_background, enable_particles, enable_music,
101 verbosity): 101 hints, verbosity):
102 102
103 resource_loader = Loader(path) 103 resource_loader = Loader(path)
104 104
105 try: 105 try:
106 resource_loader.scan_archives(data) 106 resource_loader.scan_archives(data)
183 level.difficulty = difficulty 183 level.difficulty = difficulty
184 save_keystates = [] 184 save_keystates = []
185 185
186 hints_stage = hints.stages[stage_num - 1] if hints else None 186 hints_stage = hints.stages[stage_num - 1] if hints else None
187 187
188 # Load stage data
189 stage = resource_loader.get_stage('stage%d.std' % stage_num)
190
191 game = game_class(resource_loader, states, stage_num, rank, difficulty, prng=prng, continues=continues, hints=hints_stage) 188 game = game_class(resource_loader, states, stage_num, rank, difficulty, prng=prng, continues=continues, hints=hints_stage)
192 189
193 if not display_particles: 190 if not enable_particles:
194 def new_particle(pos, anim, amp, number=1, reverse=False, duration=24): 191 def new_particle(pos, anim, amp, number=1, reverse=False, duration=24):
195 pass 192 pass
196 game.new_particle = new_particle 193 game.new_particle = new_particle
197 194
198 if display_background: 195 background = game.background if enable_background else None
199 background_anm_wrapper = resource_loader.get_anm_wrapper(('stg%dbg.anm' % stage_num,)) 196 bgms = game.std.bgms if enable_music else None
200 background = Background(stage, background_anm_wrapper)
201 else:
202 background = None
203 197
204 # Main loop 198 # Main loop
205 runner.load_game(game, background, stage.bgms, replay, save_keystates) 199 runner.load_game(game, background, bgms, replay, save_keystates)
206 window.set_runner(runner) 200 window.set_runner(runner)
207 try: 201 try:
208 window.run() 202 window.run()
209 break 203 break
210 except NextStage: 204 except NextStage:
229 223
230 224
231 main(args.path, tuple(args.data), args.stage, args.rank, args.character, 225 main(args.path, tuple(args.data), args.stage, args.rank, args.character,
232 args.replay, args.save_replay, args.skip_replay, args.boss_rush, 226 args.replay, args.save_replay, args.skip_replay, args.boss_rush,
233 args.fps_limit, args.single_buffer, args.debug, args.fixed_pipeline, 227 args.fps_limit, args.single_buffer, args.debug, args.fixed_pipeline,
234 args.no_background, args.no_particles, args.hints, args.verbosity) 228 args.no_background, args.no_particles, args.no_music, args.hints,
229 args.verbosity)