Modding Music Warband (Clash of Kings)

Users who are viewing this thread

Sopranoss

Recruit
So I'm trying to change the mod I downloaded, by throwing in some other music than the one present. It works, but only to a certain degree. I switch the files from the mod, with the new mp3's and some play in the game and some don't. Some of the original, native soundtracks are playing even though they arent present on the list of mod's music.txt. Is it possible to turn that off and have more control over the music aspect except the pasting music over the mod's music? If so, how?

this is the .txt from the mod
pastebin (dot) com/DXBt2ek0
 
Some of them are in OGG Vorbis, others are in MP3. A few are loaded from the main, common, folder.

What you can do is to download the module system, tweak the
Code:
module_music.py
to sort of loosely match the number of entries and flags, compile and then just copy over the
Code:
music.txt
file, as it is kind of independent of the rest of files (minus the song order).

I can decompile it for you in a moment, but I don't want to upset anybody.
 
Damn it, here you have it. This is only music after all. Paste it in
Code:
module_music.py
, tweak it as you want and
Code:
build_module.bat
.
Then just copy the
Code:
music.txt
to the real mod's folder. That's it.

Code:
from header_music import *
####################################################################################################################
#  Each track record contains the following fields:
#  1) Track id: used for referencing tracks.
#  2) Track file: filename of the track
#  3) Track flags. See header_music.py for a list of available flags
#  4) Continue Track flags: Shows in which situations or cultures the track can continue playing. See header_music.py for a list of available flags
####################################################################################################################

# WARNING: You MUST add mtf_module_track flag to the flags of the tracks located under module directory

tracks = [
#disassembled with a tiny lua script created by swyter--

	('cant_find_this','cant_find_this.ogg', 0, 0),
	('min_menu','min_menu.mp3', mtf_start_immediately|mtf_sit_main_title|mtf_module_track, mtf_start_immediately|mtf_sit_main_title|mtf_module_track),
	('min_ambushed_by_neutral','min_ambushed_by_neutral.mp3', mtf_sit_ambushed|mtf_sit_siege|mtf_module_track, mtf_sit_fight|mtf_sit_multiplayer_fight|mtf_sit_ambushed|mtf_sit_siege|mtf_module_track),
	('min_ambushed_by_swadian','min_ambushed_by_swadian.mp3', mtf_culture_1|mtf_sit_ambushed|mtf_sit_siege|mtf_module_track, mtf_culture_all|mtf_sit_fight|mtf_sit_multiplayer_fight|mtf_sit_ambushed|mtf_sit_siege|mtf_module_track),
	('min_ambushed_by_vaegir','min_ambushed_by_vaegir.mp3', mtf_culture_2|mtf_sit_ambushed|mtf_sit_siege|mtf_module_track, mtf_culture_all|mtf_sit_fight|mtf_sit_multiplayer_fight|mtf_sit_ambushed|mtf_sit_siege|mtf_module_track),
	('min_ambushed_by_khergit','min_ambushed_by_khergit.mp3', mtf_culture_3|mtf_sit_ambushed|mtf_sit_siege|mtf_module_track, mtf_culture_all|mtf_sit_fight|mtf_sit_multiplayer_fight|mtf_sit_ambushed|mtf_sit_siege|mtf_module_track),
	('min_ambushed_by_nord','min_ambushed_by_nord.mp3', mtf_culture_4|mtf_sit_ambushed|mtf_sit_siege|mtf_module_track, mtf_culture_all|mtf_sit_fight|mtf_sit_multiplayer_fight|mtf_sit_ambushed|mtf_sit_siege|mtf_module_track),
	('min_ambushed_by_rhodok','min_ambushed_by_rhodok.mp3', mtf_culture_5|mtf_sit_ambushed|mtf_sit_siege|mtf_module_track, mtf_culture_all|mtf_sit_fight|mtf_sit_multiplayer_fight|mtf_sit_ambushed|mtf_sit_siege|mtf_module_track),
	('min_ambushed_by_sarranid','min_ambushed_by_sarranid.mp3', mtf_culture_6|mtf_sit_ambushed|mtf_sit_siege|mtf_module_track, mtf_culture_all|mtf_sit_fight|mtf_sit_multiplayer_fight|mtf_sit_ambushed|mtf_sit_siege|mtf_module_track),
	('min_arena_1','min_arena_1.mp3', mtf_sit_arena|mtf_module_track, mtf_sit_arena|mtf_module_track),
	('min_arena_swadia','min_arena_swadia.mp3', mtf_culture_1|mtf_sit_arena|mtf_module_track, mtf_culture_1|mtf_sit_arena|mtf_module_track),
	('min_arena_vaegir','min_arena_vaegir.mp3', mtf_culture_2|mtf_sit_arena|mtf_module_track, mtf_culture_2|mtf_sit_arena|mtf_module_track),
	('min_arena_khergit','min_arena_khergit.mp3', mtf_culture_3|mtf_sit_arena|mtf_module_track, mtf_culture_3|mtf_sit_arena|mtf_module_track),
	('min_arena_nord','min_arena_nord.mp3', mtf_culture_4|mtf_sit_arena|mtf_module_track, mtf_culture_4|mtf_sit_arena|mtf_module_track),
	('min_arena_rhodok','min_arena_rhodok.mp3', mtf_culture_5|mtf_sit_arena|mtf_module_track, mtf_culture_5|mtf_sit_arena|mtf_module_track),
	('min_arena_sarranid','min_arena_sarranid.mp3', mtf_culture_6|mtf_sit_arena|mtf_module_track, mtf_culture_6|mtf_sit_arena|mtf_module_track),
	('min_travelling','min_travelling.mp3', mtf_sit_travel|mtf_module_track, mtf_sit_travel|mtf_module_track),
	('min_bandit_fight','min_bandit_fight.mp3', mtf_sit_fight|mtf_sit_multiplayer_fight|mtf_sit_ambushed|mtf_module_track, mtf_sit_fight|mtf_sit_multiplayer_fight|mtf_sit_ambushed|mtf_module_track),
	('calm_night_2','calm_night_2.ogg', mtf_sit_night, mtf_sit_tavern|mtf_sit_town|mtf_sit_travel|mtf_sit_night),
	('min_captured','min_captured.mp3', mtf_persist_until_finished|mtf_module_track, mtf_persist_until_finished|mtf_module_track),
	('min_defeated_by_neutral','min_defeated_by_neutral.mp3', mtf_persist_until_finished|mtf_sit_killed|mtf_module_track, mtf_persist_until_finished|mtf_sit_killed|mtf_module_track),
	('min_empty_village','min_empty_village.mp3', mtf_persist_until_finished|mtf_module_track, mtf_persist_until_finished|mtf_module_track),
	('encounter_hostile_nords','encounter_hostile_nords.ogg', mtf_persist_until_finished|mtf_sit_encounter_hostile, mtf_persist_until_finished|mtf_sit_encounter_hostile),
	('escape','escape.ogg', mtf_persist_until_finished, mtf_persist_until_finished),
	('min_fight_1','min_fight_1.mp3', mtf_sit_fight|mtf_sit_multiplayer_fight|mtf_sit_ambushed|mtf_module_track, mtf_sit_fight|mtf_sit_multiplayer_fight|mtf_sit_ambushed|mtf_module_track),
	('min_fight_2','min_fight_2.mp3', mtf_sit_fight|mtf_sit_multiplayer_fight|mtf_sit_ambushed|mtf_module_track, mtf_sit_fight|mtf_sit_multiplayer_fight|mtf_sit_ambushed|mtf_module_track),
	('min_fight_3','min_fight_3.mp3', mtf_sit_fight|mtf_sit_multiplayer_fight|mtf_sit_ambushed|mtf_module_track, mtf_sit_fight|mtf_sit_multiplayer_fight|mtf_sit_ambushed|mtf_module_track),
	('min_fight_4','min_fight_4.mp3', mtf_sit_fight|mtf_sit_multiplayer_fight|mtf_sit_ambushed|mtf_module_track, mtf_sit_fight|mtf_sit_multiplayer_fight|mtf_sit_ambushed|mtf_module_track),
	('min_fight_as_swadian','min_fight_as_swadian.mp3', mtf_culture_1|mtf_sit_fight|mtf_sit_multiplayer_fight|mtf_sit_ambushed|mtf_module_track, mtf_culture_all|mtf_sit_fight|mtf_sit_multiplayer_fight|mtf_sit_ambushed|mtf_module_track),
	('min_fight_as_vaegir','min_fight_as_vaegir.mp3', mtf_culture_2|mtf_sit_fight|mtf_sit_multiplayer_fight|mtf_sit_ambushed|mtf_module_track, mtf_culture_all|mtf_sit_fight|mtf_sit_multiplayer_fight|mtf_sit_ambushed|mtf_module_track),
	('min_fight_as_khergit','min_fight_as_khergit.mp3', mtf_culture_3|mtf_sit_fight|mtf_sit_multiplayer_fight|mtf_sit_ambushed|mtf_module_track, mtf_culture_all|mtf_sit_fight|mtf_sit_multiplayer_fight|mtf_sit_ambushed|mtf_module_track),
	('min_fight_as_nord','min_fight_as_nord.mp3', mtf_culture_4|mtf_sit_fight|mtf_sit_multiplayer_fight|mtf_sit_ambushed|mtf_module_track, mtf_culture_all|mtf_sit_fight|mtf_sit_multiplayer_fight|mtf_sit_ambushed|mtf_module_track),
	('min_fight_as_rhodok','min_fight_as_rhodok.mp3', mtf_culture_5|mtf_sit_fight|mtf_sit_multiplayer_fight|mtf_sit_ambushed|mtf_module_track, mtf_culture_all|mtf_sit_fight|mtf_sit_multiplayer_fight|mtf_sit_ambushed|mtf_module_track),
	('min_fight_as_sarranid','min_fight_as_sarranid.mp3', mtf_culture_6|mtf_sit_fight|mtf_sit_multiplayer_fight|mtf_sit_ambushed|mtf_module_track, mtf_culture_all|mtf_sit_fight|mtf_sit_multiplayer_fight|mtf_sit_ambushed|mtf_module_track),
	('min_fight_while_mounted_1','min_fight_while_mounted_1.mp3', mtf_sit_fight|mtf_sit_multiplayer_fight|mtf_sit_ambushed|mtf_module_track, mtf_sit_fight|mtf_sit_multiplayer_fight|mtf_sit_ambushed|mtf_module_track),
	('min_fight_while_mounted_2','min_fight_while_mounted_2.mp3', mtf_sit_fight|mtf_sit_multiplayer_fight|mtf_sit_ambushed|mtf_module_track, mtf_sit_fight|mtf_sit_multiplayer_fight|mtf_sit_ambushed|mtf_module_track),
	('min_infiltration_swadia','min_infiltration_swadia.mp3', mtf_culture_1|mtf_sit_town_infiltrate|mtf_module_track, mtf_culture_all|mtf_sit_town_infiltrate|mtf_module_track),
	('min_infiltration_vaegir','min_infiltration_vaegir.mp3', mtf_culture_2|mtf_sit_town_infiltrate|mtf_module_track, mtf_culture_all|mtf_sit_town_infiltrate|mtf_module_track),
	('infiltration_khergit','infiltration_khergit.ogg', mtf_culture_3|mtf_sit_town_infiltrate, mtf_culture_all|mtf_sit_town_infiltrate),
	('min_infiltration_nord','min_infiltration_nord.mp3', mtf_culture_4|mtf_sit_town_infiltrate|mtf_module_track, mtf_culture_all|mtf_sit_town_infiltrate|mtf_module_track),
	('min_infiltration_rhodok','min_infiltration_rhodok.mp3', mtf_culture_5|mtf_sit_town_infiltrate|mtf_module_track, mtf_culture_all|mtf_sit_town_infiltrate|mtf_module_track),
	('min_infiltration_sarranid','min_infiltration_sarranid.mp3', mtf_culture_6|mtf_sit_town_infiltrate|mtf_module_track, mtf_culture_all|mtf_sit_town_infiltrate|mtf_module_track),
	('min_killed_by_neutral','min_killed_by_neutral.mp3', mtf_persist_until_finished|mtf_sit_killed|mtf_module_track, mtf_persist_until_finished|mtf_sit_killed|mtf_module_track),
	('killed_by_swadian','killed_by_swadian.ogg', mtf_culture_1|mtf_persist_until_finished|mtf_sit_killed, mtf_culture_1|mtf_persist_until_finished|mtf_sit_killed),
	('min_killed_by_vaegir','min_killed_by_vaegir.mp3', mtf_culture_2|mtf_persist_until_finished|mtf_sit_killed|mtf_module_track, mtf_culture_2|mtf_persist_until_finished|mtf_sit_killed|mtf_module_track),
	('killed_by_khergit','killed_by_khergit.ogg', mtf_culture_3|mtf_persist_until_finished|mtf_sit_killed, mtf_culture_3|mtf_persist_until_finished|mtf_sit_killed),
	('min_killed_by_nord','min_killed_by_nord.mp3', mtf_culture_4|mtf_persist_until_finished|mtf_sit_killed|mtf_module_track, mtf_culture_4|mtf_persist_until_finished|mtf_sit_killed|mtf_module_track),
	('min_killed_by_rhodok','min_killed_by_rhodok.mp3', mtf_culture_5|mtf_persist_until_finished|mtf_sit_killed|mtf_module_track, mtf_culture_5|mtf_persist_until_finished|mtf_sit_killed|mtf_module_track),
	('min_killed_by_sarranid','min_killed_by_sarranid.mp3', mtf_culture_6|mtf_persist_until_finished|mtf_sit_killed|mtf_module_track, mtf_culture_6|mtf_persist_until_finished|mtf_sit_killed|mtf_module_track),
	('lords_hall_swadian','lords_hall_swadian.ogg', mtf_culture_1|mtf_sit_travel, mtf_culture_all|mtf_sit_tavern|mtf_sit_town|mtf_sit_travel|mtf_sit_night),
	('lords_hall_vaegir','lords_hall_vaegir.ogg', mtf_culture_2|mtf_sit_travel, mtf_culture_all|mtf_sit_tavern|mtf_sit_town|mtf_sit_travel|mtf_sit_night),
	('lords_hall_khergit','lords_hall_khergit.ogg', mtf_culture_3|mtf_sit_travel, mtf_culture_all|mtf_sit_tavern|mtf_sit_town|mtf_sit_travel|mtf_sit_night),
	('lords_hall_nord','lords_hall_nord.ogg', mtf_culture_4|mtf_sit_travel, mtf_culture_all|mtf_sit_tavern|mtf_sit_town|mtf_sit_travel|mtf_sit_night),
	('lords_hall_rhodok','lords_hall_rhodok.ogg', mtf_culture_5|mtf_sit_travel, mtf_culture_all|mtf_sit_tavern|mtf_sit_town|mtf_sit_travel|mtf_sit_night),
	('min_lords_hall_sarranid','min_lords_hall_sarranid.mp3', mtf_culture_6|mtf_sit_travel|mtf_module_track, mtf_culture_all|mtf_sit_tavern|mtf_sit_town|mtf_sit_travel|mtf_sit_night|mtf_module_track),
	('mounted_snow_terrain_calm','mounted_snow_terrain_calm.ogg', mtf_sit_travel, mtf_sit_tavern|mtf_sit_town|mtf_sit_travel|mtf_sit_night),
	('min_outdoor_beautiful_land','min_outdoor_beautiful_land.ogg', mtf_sit_travel|mtf_module_track, mtf_sit_tavern|mtf_sit_town|mtf_sit_travel|mtf_sit_night|mtf_module_track),
	('min_terrain_1','min_terrain_1.mp3', mtf_sit_travel|mtf_module_track, mtf_sit_tavern|mtf_sit_town|mtf_sit_travel|mtf_sit_night|mtf_module_track),
	('min_terrain_2','min_terrain_2.mp3', mtf_sit_travel|mtf_module_track, mtf_sit_tavern|mtf_sit_town|mtf_sit_travel|mtf_sit_night|mtf_module_track),
	('neutral_infiltration','neutral_infiltration.ogg', mtf_sit_town_infiltrate, mtf_sit_town_infiltrate),
	('min_retreat','min_retreat.mp3', mtf_persist_until_finished|mtf_sit_killed|mtf_module_track, mtf_persist_until_finished|mtf_sit_killed|mtf_module_track),
	('min_siege_neutral','min_siege_neutral.mp3', mtf_sit_siege|mtf_module_track, mtf_sit_fight|mtf_sit_multiplayer_fight|mtf_sit_ambushed|mtf_sit_siege|mtf_module_track),
	('enter_the_juggernaut','enter_the_juggernaut.ogg', mtf_sit_siege, mtf_sit_fight|mtf_sit_multiplayer_fight|mtf_sit_ambushed|mtf_sit_siege),
	('siege_attempt','siege_attempt.ogg', mtf_sit_siege, mtf_sit_fight|mtf_sit_multiplayer_fight|mtf_sit_ambushed|mtf_sit_siege),
	('crazy_battle_music','crazy_battle_music.ogg', mtf_sit_siege, mtf_sit_fight|mtf_sit_multiplayer_fight|mtf_sit_ambushed|mtf_sit_siege),
	('min_tavern_1','min_tavern_1.mp3', mtf_sit_tavern|mtf_sit_feast|mtf_module_track, mtf_sit_tavern|mtf_sit_feast|mtf_module_track),
	('min_tavern_2','min_tavern_2.mp3', mtf_sit_tavern|mtf_sit_feast|mtf_module_track, mtf_sit_tavern|mtf_sit_feast|mtf_module_track),
	('min_town_neutral','min_town_neutral.ogg', mtf_sit_town|mtf_sit_travel|mtf_module_track, mtf_sit_tavern|mtf_sit_town|mtf_sit_travel|mtf_sit_night|mtf_module_track),
	('min_town_swadian','min_town_swadian.ogg', mtf_culture_1|mtf_sit_town|mtf_sit_travel|mtf_module_track, mtf_culture_all|mtf_sit_tavern|mtf_sit_town|mtf_sit_travel|mtf_sit_night|mtf_module_track),
	('min_town_vaegir','min_town_vaegir.ogg', mtf_culture_2|mtf_sit_town|mtf_sit_travel|mtf_module_track, mtf_culture_all|mtf_sit_tavern|mtf_sit_town|mtf_sit_travel|mtf_sit_night|mtf_module_track),
	('min_town_khergit','min_town_khergit.ogg', mtf_culture_3|mtf_sit_town|mtf_sit_travel|mtf_module_track, mtf_culture_all|mtf_sit_tavern|mtf_sit_town|mtf_sit_travel|mtf_sit_night|mtf_module_track),
	('min_town_nord','min_town_nord.ogg', mtf_culture_4|mtf_sit_town|mtf_sit_travel|mtf_module_track, mtf_culture_all|mtf_sit_tavern|mtf_sit_town|mtf_sit_travel|mtf_sit_night|mtf_module_track),
	('min_town_rhodok','min_town_rhodok.ogg', mtf_culture_5|mtf_sit_town|mtf_sit_travel|mtf_module_track, mtf_culture_all|mtf_sit_tavern|mtf_sit_town|mtf_sit_travel|mtf_sit_night|mtf_module_track),
	('min_town_sarranid','min_town_sarranid.mp3', mtf_culture_6|mtf_sit_town|mtf_sit_travel|mtf_module_track, mtf_culture_all|mtf_sit_tavern|mtf_sit_town|mtf_sit_travel|mtf_sit_night|mtf_module_track),
	('min_travel_neutral','min_travel_neutral.mp3', mtf_sit_travel|mtf_module_track, mtf_sit_tavern|mtf_sit_town|mtf_sit_travel|mtf_sit_night|mtf_module_track),
	('min_travel_swadian','min_travel_swadian.mp3', mtf_culture_1|mtf_sit_travel|mtf_module_track, mtf_culture_all|mtf_sit_tavern|mtf_sit_town|mtf_sit_travel|mtf_sit_night|mtf_module_track),
	('min_travel_vaegir','min_travel_vaegir.mp3', mtf_culture_2|mtf_sit_travel|mtf_module_track, mtf_culture_all|mtf_sit_tavern|mtf_sit_town|mtf_sit_travel|mtf_sit_night|mtf_module_track),
	('min_travel_khergit','min_travel_khergit.mp3', mtf_culture_3|mtf_sit_travel|mtf_module_track, mtf_culture_all|mtf_sit_tavern|mtf_sit_town|mtf_sit_travel|mtf_sit_night|mtf_module_track),
	('min_travel_nord','min_travel_nord.mp3', mtf_culture_4|mtf_sit_travel|mtf_module_track, mtf_culture_all|mtf_sit_tavern|mtf_sit_town|mtf_sit_travel|mtf_sit_night|mtf_module_track),
	('min_travel_rhodok','min_travel_rhodok.mp3', mtf_culture_5|mtf_sit_travel|mtf_module_track, mtf_culture_all|mtf_sit_tavern|mtf_sit_town|mtf_sit_travel|mtf_sit_night|mtf_module_track),
	('min_travel_sarranid','min_travel_sarranid.mp3', mtf_culture_6|mtf_sit_travel|mtf_module_track, mtf_culture_all|mtf_sit_tavern|mtf_sit_town|mtf_sit_travel|mtf_sit_night|mtf_module_track),
	('uncertain_homestead','uncertain_homestead.ogg', mtf_sit_travel, mtf_sit_tavern|mtf_sit_town|mtf_sit_travel|mtf_sit_night),
	('hearth_and_brotherhood','hearth_and_brotherhood.ogg', mtf_sit_travel, mtf_sit_tavern|mtf_sit_town|mtf_sit_travel|mtf_sit_night),
	('min_tragic_village','min_tragic_village.mp3', mtf_sit_travel|mtf_module_track, mtf_sit_tavern|mtf_sit_town|mtf_sit_travel|mtf_sit_night|mtf_module_track),
	('min_victorious_evil','min_victorious_evil.mp3', mtf_persist_until_finished|mtf_module_track, mtf_persist_until_finished|mtf_module_track),
	('victorious_neutral_1','victorious_neutral_1.ogg', mtf_persist_until_finished|mtf_sit_victorious, mtf_persist_until_finished|mtf_sit_victorious),
	('victorious_neutral_2','victorious_neutral_2.ogg', mtf_persist_until_finished|mtf_sit_victorious, mtf_persist_until_finished|mtf_sit_victorious),
	('victorious_neutral_3','victorious_neutral_3.ogg', mtf_persist_until_finished|mtf_sit_victorious, mtf_persist_until_finished|mtf_sit_victorious),
	('min_victorious_swadian','min_victorious_swadian.mp3', mtf_culture_2|mtf_persist_until_finished|mtf_sit_victorious, mtf_culture_2|mtf_persist_until_finished|mtf_sit_victorious),
	('min_victorious_vaegir','min_victorious_vaegir.mp3', mtf_culture_2|mtf_persist_until_finished|mtf_sit_victorious, mtf_culture_2|mtf_persist_until_finished|mtf_sit_victorious),
	('min_victorious_khergit','min_victorious_khergit.mp3', mtf_culture_3|mtf_persist_until_finished|mtf_sit_victorious, mtf_culture_3|mtf_persist_until_finished|mtf_sit_victorious),
	('min_victorious_nord','min_victorious_nord.mp3', mtf_culture_4|mtf_persist_until_finished|mtf_sit_victorious, mtf_culture_4|mtf_persist_until_finished|mtf_sit_victorious),
	('min_victorious_rhodok','min_victorious_rhodok.mp3', mtf_culture_5|mtf_persist_until_finished|mtf_sit_victorious, mtf_culture_5|mtf_persist_until_finished|mtf_sit_victorious),
	('min_victorious_sarranid','min_victorious_sarranid.mp3', mtf_culture_5|mtf_persist_until_finished|mtf_sit_victorious, mtf_culture_5|mtf_persist_until_finished|mtf_sit_victorious),
	('wedding','wedding.ogg', mtf_persist_until_finished, mtf_persist_until_finished),
	('coronation','coronation.ogg', mtf_persist_until_finished, mtf_persist_until_finished),

]


This is the tiny Lua script that decompiles it. Use it with vanilla LuaJIT.
Code:
--local music=[[music.txt]]

-- local count
-- for l in io.lines("music.txt") do
  -- print(l)
  -- count=(count or 1) + 1
  
  -- if count==1 then
    -- songs=l
  -- end
  
  
-- end

local out = io.open("mod_music.py","w")
local s,raw,thing=0,{},"#disassembled with a tiny lua script created by swyter--\n\n"
for l in io.lines("music.txt") do
  s=s+1
  raw[s]={}
  for w in l:gmatch("%S+") do table.insert(raw[s], w) end
end

local count = raw[1][1]

print(string.format("there are %d songs within",count))

function mkflag(int)
  local flag={
[0]={'mtf_culture_all'                       , 0x0000003F},
    {'mtf_culture_1'                         , 0x00000001},
    {'mtf_culture_2'                         , 0x00000002},
    {'mtf_culture_3'                         , 0x00000004},
    {'mtf_culture_4'                         , 0x00000008},
    {'mtf_culture_5'                         , 0x00000010},
    {'mtf_culture_6'                         , 0x00000020},

    {'mtf_looping'                           , 0x00000040},
    {'mtf_start_immediately'                 , 0x00000080},
    {'mtf_persist_until_finished'            , 0x00000100},

    {'mtf_sit_tavern'                        , 0x00000200},
    {'mtf_sit_fight'                         , 0x00000400},
    {'mtf_sit_multiplayer_fight'             , 0x00000800},
    {'mtf_sit_ambushed'                      , 0x00001000},
    {'mtf_sit_town'                          , 0x00002000},
    {'mtf_sit_town_infiltrate'               , 0x00004000},
    {'mtf_sit_killed'                        , 0x00008000},
    {'mtf_sit_travel'                        , 0x00010000},
    {'mtf_sit_arena'                         , 0x00020000},
    {'mtf_sit_siege'                         , 0x00040000},
    {'mtf_sit_night'                         , 0x00080000},
    {'mtf_sit_day'                           , 0x00100000},
    {'mtf_sit_encounter_hostile'             , 0x00200000},
    {'mtf_sit_main_title'                    , 0x00400000},
    {'mtf_sit_victorious'                    , 0x00800000},
    {'mtf_sit_feast'                         , 0x01000000},
    {'mtf_module_track'                      , 0x10000000}
  }
  
  --local bit,append=require 'bit',""--{"none"}
  local bit,append=require 'bit',nil--{"none"}
  for i,f in pairs(flag) do
    --if true then
    if bit.band(int,f[2])==f[2] then
      --append[#append+1]=f
      append=append and (append.."|"..f[1]) or f[1]
      --int=bit.band(int,bit.bxor(f,9999999999999999999999999))
      int=bit.band(int,bit.bnot(f[2]))
    end
  end
  return append or int--append:join("|")--int--"lol|a"
end


for i=2,1+count,1 do
  print(raw[i][1])
  
  oggtk=raw[i][1]
  trkid=oggtk:match("([^.]+).")
  
  sflag=mkflag(raw[i][2])
  mflag=mkflag(raw[i][3])
  
  thing=thing..("\t('%s','%s', %s, %s),\n"):format(trkid,oggtk,sflag,mflag)
end


out:write(([[from header_music import *
####################################################################################################################
#  Each track record contains the following fields:
#  1) Track id: used for referencing tracks.
#  2) Track file: filename of the track
#  3) Track flags. See header_music.py for a list of available flags
#  4) Continue Track flags: Shows in which situations or cultures the track can continue playing. See header_music.py for a list of available flags
####################################################################################################################

# WARNING: You MUST add mtf_module_track flag to the flags of the tracks located under module directory

tracks = [
%s
]
]]):format(thing))


out:close()
 
Sopranoss said:
So I'm trying to change the mod I downloaded, by throwing in some other music than the one present. It works, but only to a certain degree. I switch the files from the mod, with the new mp3's and some play in the game and some don't. Some of the original, native soundtracks are playing even though they arent present on the list of mod's music.txt. Is it possible to turn that off and have more control over the music aspect except the pasting music over the mod's music? If so, how?

this is the .txt from the mod
pastebin (dot) com/DXBt2ek0

it's also the format what might causes the problem for example: main_menu_music.avi/mp3...etc so it have be in the same format as it's been reportet in your music folder.
 
Swyter said:
Damn it, here you have it. This is only music after all. Paste it in
Code:
module_music.py
, tweak it as you want and
Code:
build_module.bat
.

Can't I just edit the module_music.py I have in the module system?

Oh I get it, you decompiled the music.txt from the mod so I have an easier task to do, okay. Im so damn green in modding
 
One more question, how can I check the culture a faction in mod has? So I can assign correct music to certain factions.
 
Sopranoss said:
One more question, how can I check the culture a faction in mod has? So I can assign correct music to certain factions.

Take a look here to see how those factions are handled internally, compare it with the structure that you see in
Code:
factions.txt
:
Code:
https://bitbucket.org/Swyter/swysdk/src/0afc7b76209d4fddbebd538669282d7972f6bedb/module_factions.py?at=default#cl-32

And here, within the long starting script called
Code:
game_start
, to see how they are bound with the real ones:
Code:
https://bitbucket.org/Swyter/swysdk/raw/0afc7b76209d4fddbebd538669282d7972f6bedb/module_scripts.py

Search for "# Cultures:" and the one underneath, "# Factions:", generally there's a 1 to 1 relationship (they follow the same order). Pretty easy.
 
Back
Top Bottom