view main.py @ 119:2399a8c3da0c

Modified EquipmentSlot to display an image instead of a text. Added EquipmentGui class, which handles the equipment slots of the player screen. An EquipmentGui instance will be created in the InventoryGUI constructor. The initializeInventory method of the Hud class supplies the players inventory and equipment to the InventoryGUI constructor.
author KarstenBock@gmx.net
date Wed, 05 Oct 2011 11:04:39 +0200
parents 06be71be07f1
children 86656563555e
line wrap: on
line source

#!/usr/bin/env python2 
#   This program is free software: you can redistribute it and/or modify
#   it under the terms of the GNU General Public License as published by
#   the Free Software Foundation, either version 3 of the License, or
#   (at your option) any later version.

#   This program is distributed in the hope that it will be useful,
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#   GNU General Public License for more details.

#   You should have received a copy of the GNU General Public License
#   along with this program.  If not, see <http://www.gnu.org/licenses/>.

#TODO: Modularize this script
import sys
import logging

from optparse import OptionParser

from parpg.settings import Settings

usage = ('usage: %prog [options] settings_path [system_path user_path]\n\n'
         'The settings_path argument is mandatory and is the directory in \n'
         'which your system.cfg file is located. Optionally, you may \n'
         'specify where data files are located (system_path), and where \n'
         'the user settings and data files should be saved to (user_path)\n\n'
         'Example: python %prog .')

parser = OptionParser(description='PARPG Launcher Script', usage=usage)
parser.add_option('-f', '--logfile',
                  help='Name of log file to save to')
parser.add_option('-l', '--loglevel', default='critical',
                  help='desired output level for log file')
opts, args = parser.parse_args()

if not args:
    parser.print_help()
    sys.exit(1)
            


settings = Settings(*args)

levels = {'debug': logging.DEBUG,
          'info': logging.INFO,
          'warning': logging.WARNING,
          'error': logging.ERROR,
          'critical': logging.CRITICAL}

#TODO: setup formating
logging.basicConfig(filename=opts.logfile, level=levels[opts.loglevel])
logger = logging.getLogger('parpg')

try:
    old_path = sys.path
    sys.path = [settings.parpg.FifePath]
    import fife
except AttributeError:
    logger.warning('[parpg] section has no FifePath option')
except ImportError:
    logger.critical("Could not import fife module. Please install fife or add "
                    "'FifePath' to the [parpg] section of your settings file")
    sys.exit(1)
finally:
    sys.path = old_path

from parpg.application import PARPGApplication
from parpg.common import utils

# enable psyco if available and in settings file
try:
    import psyco
    psyco_available = True
except ImportError:
    logger.warning('Psyco Acceleration unavailable')
    psyco_available = False

if settings.fife.UsePsyco:
    if psyco_available:
        psyco.full()
        logger.info('Psyco Acceleration enabled')
    else:
        logger.warning('Please install psyco before attempting to use it'
                        'Psyco Acceleration disabled')
else:
    logger.info('Psycho Acceleration disabled')

# run the game
app = PARPGApplication(settings)
app.run()