home *** CD-ROM | disk | FTP | other *** search
/ PC PowerPlay 56 / CDPowerplay56Disc2.iso / demos / blade / data1.cab / Program_Executable_Files / Lib / DMusic.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2000-10-27  |  7.3 KB  |  191 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 1.5)
  3.  
  4. import Bladex
  5. import whrandom
  6. import pdb
  7. enemiesInCombat = 0
  8. debug_dmusic = 0
  9. dictEnemiesInCombatHandles = { }
  10. TIMEDELAY = 2.0
  11. dictDMusics = { }
  12. dictExcludedEntitites = { }
  13.  
  14. def getRnd(strKind):
  15.     if not dictDMusics.has_key(strKind):
  16.         return -1
  17.     
  18.     tidDMusics = dictDMusics[strKind]
  19.     return tidDMusics[whrandom.randint(0, len(tidDMusics) - 1)]
  20.  
  21.  
  22. def newKind(strKind, tidEvent):
  23.     dictDMusics[strKind] = tidEvent
  24.  
  25.  
  26. def excludeEnt(strEnt):
  27.     dictExcludedEntitites[strEnt] = 0
  28.  
  29.  
  30. def MusicWarperDelayNoSeenFunc(strName):
  31.     me = Bladex.GetEntity(strName)
  32.     if debug_dmusic == 1:
  33.         print 'MusicWarperDelayNoSeenFunc'
  34.     
  35.     decEnemies(strName)
  36.     me.Data.DelayNoSeenFuncMusicBackUp(strName)
  37.     RemoveMusicWarperDelayNoSeenFunc(strName)
  38.     if debug_dmusic == 1:
  39.         print 'MusicWarperDelayNoSeenFunc executed'
  40.     
  41.  
  42.  
  43. def RestoreMusicWarperDelayNoSeenFunc(strName):
  44.     me = Bladex.GetEntity(strName)
  45.     if me.Data.imusic_noseen_warp == 0:
  46.         print 'Unexpected situation in RestoreMusicWarperDelayNoSeenFunc'
  47.         return None
  48.     
  49.     me.Data.DelayNoSeenFuncMusicBackUp = me.DelayNoSeenFunc
  50.     me.DelayNoSeenFunc = MusicWarperDelayNoSeenFunc
  51.     if debug_dmusic == 1:
  52.         print 'RestoreMusicWarperDelayNoSeenFunc executed fine'
  53.     
  54.  
  55.  
  56. def AddMusicWarperDelayNoSeenFunc(strName):
  57.     me = Bladex.GetEntity(strName)
  58.     if me.Data.imusic_noseen_warp == 1:
  59.         print 'Unexpected situation in AddMusicWarperDelayNoSeenFunc'
  60.         return None
  61.     
  62.     me.Data.DelayNoSeenFuncMusicBackUp = me.DelayNoSeenFunc
  63.     me.DelayNoSeenFunc = MusicWarperDelayNoSeenFunc
  64.     me.Data.imusic_noseen_warp = 1
  65.     if debug_dmusic == 1:
  66.         print 'AddMusicWarperDelayNoSeenFunc executed fine'
  67.     
  68.  
  69.  
  70. def RemoveMusicWarperDelayNoSeenFunc(strName):
  71.     me = Bladex.GetEntity(strName)
  72.     if me.Data.imusic_noseen_warp == 0:
  73.         print 'Unexpected situation in RemoveMusicWarperDelayNoSeenFunc'
  74.         return None
  75.     
  76.     if not (me.Data) or not (me.Data.DelayNoSeenFuncMusicBackUp):
  77.         print ' CRITICAL->Unexpected situation in RemoveMusicWarperDelayNoSeenFunc'
  78.         return None
  79.     
  80.     me.DelayNoSeenFunc = me.Data.DelayNoSeenFuncMusicBackUp
  81.     me.Data.DelayNoSeenFuncMusicBackUp = 0
  82.     me.Data.imusic_noseen_warp = 0
  83.  
  84.  
  85. def incEnemies(strName):
  86.     global enemiesInCombat
  87.     me = Bladex.GetEntity(strName)
  88.     if me.Data.imusic_noseen_warp == 1:
  89.         RemoveMusicWarperDelayNoSeenFunc(strName)
  90.         return None
  91.     
  92.     if dictEnemiesInCombatHandles.has_key(strName):
  93.         return None
  94.     
  95.     enemiesInCombat = enemiesInCombat + 1
  96.     ent = Bladex.GetEntity(strName)
  97.     handle = getRnd(ent.Name)
  98.     if handle == -1:
  99.         handle = getRnd(ent.Kind)
  100.     elif debug_dmusic == 1:
  101.         print 'Handle 4 a SPECIFIC character , NOT race'
  102.     
  103.     Bladex.ExeMusicEvent(handle)
  104.     dictEnemiesInCombatHandles[strName] = handle
  105.     if debug_dmusic == 1:
  106.         print 'IncEn-> enemies:', enemiesInCombat
  107.     
  108.  
  109.  
  110. def decEnemies(strName):
  111.     global enemiesInCombat
  112.     if not dictEnemiesInCombatHandles.has_key(strName):
  113.         return None
  114.     
  115.     enemiesInCombat = enemiesInCombat - 1
  116.     del dictEnemiesInCombatHandles[strName]
  117.     if enemiesInCombat == 0:
  118.         Bladex.ExeMusicEvent(-1)
  119.     else:
  120.         max_prio = -1
  121.         curr_handle = -1
  122.         for x in dictEnemiesInCombatHandles.keys():
  123.             test_handle = dictEnemiesInCombatHandles[x]
  124.             tmp_ent = Bladex.GetEntity(x)
  125.             if not tmp_ent or tmp_ent.Life == 0:
  126.                 print 'Dmusic.decEnemies() -> Deleting music entry due to death?'
  127.                 del dictEnemiesInCombatHandles[x]
  128.             elif Bladex.GetMusicEventPriority(test_handle) > max_prio:
  129.                 max_prio = Bladex.GetMusicEventPriority(test_handle)
  130.                 curr_handle = test_handle
  131.                 tmp_ent = Bladex.GetEntity(x)
  132.                 if tmp_ent == None:
  133.                     print 'ERROR in decEnemies() . CAll Jose ASAP!!!!!'
  134.                 
  135.             
  136.         
  137.         Bladex.ExeMusicEvent(curr_handle, 1)
  138.     if debug_dmusic == 1:
  139.         print 'DecEn-> enemies:', enemiesInCombat
  140.     
  141.  
  142.  
  143. def InformDead(strName):
  144.     if not dictEnemiesInCombatHandles.has_key(strName):
  145.         return None
  146.     elif debug_dmusic == 1:
  147.         print 'Dmusic.InformDead calling decEnemies!!!'
  148.     
  149.     decEnemies(strName)
  150.  
  151.  
  152. def notifyCombat(strName):
  153.     ent = Bladex.GetEntity(strName)
  154.     if not dictDMusics.has_key(ent.Name) and not dictDMusics.has_key(ent.Kind):
  155.         return None
  156.     
  157.     if dictExcludedEntitites.has_key(ent.Name):
  158.         return None
  159.     
  160.     if not (ent.InCombat):
  161.         if ent.Life > 0:
  162.             AddMusicWarperDelayNoSeenFunc(strName)
  163.         else:
  164.             decEnemies(strName)
  165.     else:
  166.         incEnemies(strName)
  167.  
  168.  
  169. def AddCombatMusic(race_name, file_name, priority, pre_open = 0, volume = 1.0, fin_t = 1.0, fout_t = 1.0):
  170.     tag_name = race_name + '_dmusic'
  171.     file_len = len(file_name)
  172.     if file_name[file_len - 1] == 'v' or file_name[file_len - 1] == 'V':
  173.         if (file_name[file_len - 2] == 'a' or file_name[file_len - 2] == 'A') and file_name[file_len - 3] == 'w' or file_name[file_len - 3] == 'W':
  174.             print 'Adding WAV for dinamic music for ' + race_name + ' , pre_open flag is ' + str(pre_open)
  175.             Bladex.AddMusicEventWAV(tag_name, file_name, fin_t, fout_t, volume, priority, 0, -1, pre_open)
  176.         elif file_name[file_len - 1] == '3':
  177.             if (file_name[file_len - 2] == 'p' or file_name[file_len - 2] == 'P') and file_name[file_len - 3] == 'm' or file_name[file_len - 3] == 'M':
  178.                 print 'Adding MP3 for dinamic music for ' + race_name
  179.                 if pre_open == 1:
  180.                     print 'AddCombatMusic->ERROR, trying to pre open a MP3 file'
  181.                 
  182.                 Bladex.AddMusicEventMP3(tag_name, file_name, fin_t, fout_t, volume, priority, 0, -1)
  183.             
  184.     tidMusics = (Bladex.GetMusicEvent(tag_name),)
  185.     newKind(race_name, tidMusics)
  186.  
  187.  
  188. def ExcludeMusicFor(ent_name):
  189.     excludeEnt(ent_name)
  190.  
  191.