from src.coginvasion.globals import CIGlobals
CIGlobals.SettingsMgr = sm
sm.loadFile(jsonFile)
sm.doSunriseFor(sunrise=SHOWBASE_PREINIT)
notify.info("Applying pre-ShowBase initialization settings.")

from CIBase import CIBase
base = CIBase()

sm.doSunriseFor(sunrise=SHOWBASE_POSTINIT)
notify.info("Applying post-ShowBase initialization settings.")

base.initStuff()

notify.info("Using Panda3D version {0}".format(PandaSystem.getVersionString()))
notify.info("True threading: " + str(Thread.isTrueThreads()))

# Use our shader generator extension
#import ccoginvasion
#shGen = ccoginvasion.CIShaderGenerator(base.win.getGsg(), base.win)
#base.win.getGsg().setShaderGenerator(shGen)

#import AnisotropicFiltering
#AnisotropicFiltering.startApplying()

display = base.config.GetString('load-display')
audio = base.config.GetString('audio-library-name').replace('p3', '').replace(
    '_audio', '')

if display == 'pandagl':
    display = 'OpenGL'
print 'CIStart: Reading settings file ' + jsonfile
sm = SettingsManager()


class game:
    name = 'coginvasion'
    process = 'client'
    version = os.environ.get('GAME_VERSION')
    serverAddress = os.environ.get('GAME_SERVER')


__builtin__.game = game()
print 'CIStart: Starting the game.'
print('CIStart: Using Panda3D version {0}').format(
    PandaSystem.getVersionString())
print 'CIStart: True threading: ' + str(Thread.isTrueThreads())
try:
    import aes, niraidata
    prc = niraidata.CONFIG
    iv, key, prc = prc[:16], prc[16:32], prc[32:]
    prc = aes.decrypt(prc, key, iv)
    for line in prc.split('\n'):
        line = line.strip()
        if line:
            loadPrcFileData('coginvasion config', line)

    print 'CIStart: Running production'
except:
    loadPrcFile('config/Confauto.prc')
    loadPrcFile('config/config_client.prc')
    print 'CIStart: Running dev'