TOD override screenshots

Corrodias

Generally Awesome
Here are the ones i find to be unusual:
day_tod_override and my less-fog version look nicer, i think, than the classic one.
infrared_tod_override is neat.
m00_tod_override is odd.
m01_tod_override is super foggy.
m01test_tod_override is kind of creepy.
m15_tod_override has no bloom at all.
m18_tod_override is super foggy.
neutral_light is very... neutral. I might like it the most if it were "sunnier".
noir_tod_override is neat.
space_tod_override is super dark.
spacelit_tod_override has everything brightly lit except the sky/buildings.
sunset_tod_override is pretty.
training_tod_override is foggy, but not so much that you can't see.

blue_pd_tod_override
blue_pd_tod_override a.jpg blue_pd_tod_override b.jpg

blue_predawn_tod_override
blue_predawn_tod_override a.jpg blue_predawn_tod_override b.jpg

blue_tod_override
blue_tod_override a.jpg blue_tod_override b.jpg

classic_tod_override
classic_tod_override a.jpg classic_tod_override b.jpg

day_tod_override
day_tod_override a.jpg day_tod_override b.jpg

day_tod_override, tweaked with <fog_color>0.603827 0.846873 1.0 0.0</fog_color>
tweaked a.jpg tweaked b.jpg tweaked c.jpg

infrared_tod_override
infrared_tod_override a.jpg infrared_tod_override b.jpg

m00_n_tod_override
m00_n_tod_override a.jpg m00_n_tod_override b.jpg

m00_out_tod_override
m00_out_tod_override a.jpg m00_out_tod_override b.jpg

m00_tod_override
m00_tod_override a.jpg m00_tod_override b.jpg

m01_tod_override
m01_tod_override.jpg

m01test_tod_override
m01test_tod_override a.jpg m01test_tod_override b.jpg m01test_tod_override c.jpg

m02_tod_override
m02_tod_override a.jpg m02_tod_override b.jpg

m03_spacefox
m03_spacefox a.jpg m03_spacefox b.jpg

m06_2_tod_override
m06_2_tod_override a.jpg m06_2_tod_override b.jpg

m08_tod_override
m08_tod_override a.jpg m08_tod_override b.jpg m08_tod_override c.jpg

m15_tod_override
m15_tod_override a.jpg m15_tod_override b.jpg m15_tod_override c.jpg m15_tod_override d.jpg

m16_tod_override
m16_tod_override a.jpg m16_tod_override b.jpg

m18_tod_override
m18_tod_override.jpg

modern_tod_override
modern_tod_override a.jpg modern_tod_override b.jpg

mothership_tod_override
mothership_tod_override a.jpg mothership_tod_override b.jpg mothership_tod_override c.jpg

neutral_light
neutral_light a.jpg neutral_light b.jpg

nightmare_dark_tod_override
nightmare_dark_tod_override a.jpg nightmare_dark_tod_override b.jpg nightmare_dark_tod_override c.jpg

nm_02out_tod_override
nm_02out_tod_override a.jpg nm_02out_tod_override b.jpg

nm_cheat_tod_override
nm_cheat_tod_override a.jpg nm_cheat_tod_override b.jpg

nm_dark_tod_override
nm_dark_tod_override a.jpg nm_dark_tod_override b.jpg nm_dark_tod_override c.jpg

nm_noon_tod_override
nm_noon_tod_override a.jpg nm_noon_tod_override b.jpg

nm_noonb_tod_override
nm_noonb_tod_override a.jpg nm_noonb_tod_override b.jpg

noir_tod_override
noir_tod_override a.jpg noir_tod_override b.jpg

orange_tod_override
orange_tod_override a.jpg orange_tod_override b.jpg orange_tod_override c.jpg

r_leap01_tod_override
r_leap01_tod_override a.jpg r_leap01_tod_override b.jpg

red_tod_override
red_tod_override a.jpg red_tod_override b.jpg red_tod_override c.jpg

space_tod_override
space_tod_override a.jpg space_tod_override b.jpg

spacelit_tod_override
spacelit_tod_override a.jpg spacelit_tod_override b.jpg

suburbia_tod_override
suburbia_tod_override a.jpg suburbia_tod_override b.jpg

sunrise_tod_override
sunrise_tod_override a.jpg sunrise_tod_override b.jpg

sunset_tod_override
sunset_tod_override a.jpg sunset_tod_override b.jpg

training_tod_override
training_tod_override a.jpg training_tod_override b.jpg

vintage_tod_override
vintage_tod_override a.jpg vintage_tod_override b.jpg

violet_tod_override
violet_tod_override a.jpg violet_tod_override b.jpg violet_tod_override c.jpg

warden_tod_override_noon
warden_tod_override_noon a.jpg warden_tod_override_noon b.jpg
 
Last edited:
I didn't realize there were so many ToDs! Still holding out that they can be used to make a day/night cycle somehow.
 
More than that, we need Sandbox+ to allow us to use any of those on the fly via key commands!

I mentioned this in the Sandbox+ thread too, but the functions to override tod do not work correctly in the open world. The ship's computer must do some voodoo in the background to make them all work correctly.
 
All the computer UI does is call vint_scriptevent_post("player_set_tod", menu_data.id) inside function col_main_purchase_select(menu_data). Unfortunately, since menu_data is passed into the function, it's clearly loaded from somewhere else.

Here's what happens when it's populating the menus:
Code:
local CATEGORY_TOD = 2
...
  col_main_add_category("COL_CAT_AUDIO", nil, nil, false)  
   col_main_add_category("COL_CAT_TEXT", nil, nil, false)
  
   if game_unlockable_is_unlocked( "ship_tod" ) and game_get_is_coop_client() == false then
     col_main_add_category("COL_CAT_TOD", nil, nil, false)
   end
col_main_add_category has parameters (name, image_name, is_new, disabled).

col_main_populate_rewards is called when you open one of the submenus (like logs or TOD), it enumerates the available choices.
Code:
function col_main_populate_rewards(menu_data)
   Col_main_building_menu = menu_data.sub_menu
   local category
  
   if Col_main_category_id == CATEGORY_AUDIO then
     category = "audio_logs"
   elseif Col_main_category_id == CATEGORY_TEXT then
     category = "text_adventures"
   elseif Col_main_category_id == CATEGORY_TOD then
     category = "tod"
   end
  
   vint_dataresponder_request("collections_main_dr", "col_main_add_reward", 0, category)
...
The dataresponder request is where the "magic" happens. The engine loads the available TODs and sends them to the callback function col_main_add_reward.

Then when you choose one of those items, it calls col_main_purchase_select:
Code:
  elseif Col_main_category_id == CATEGORY_TOD then
     vint_scriptevent_post("player_set_tod", menu_data.id)
     ui_audio_post_event("ui_tod_toggle")
     store_common_button_b()
   end

It's all very automatic. So the question is, where does the engine pull the TOD list from when you query the dataresponder? player_set_tod appears to be a function that just takes a number as its only parameter. So i'm thinking the TODs are listed in a file somewhere that they can be referred to by an index.
 
would it be possible to bind the command that loads the computer screen to a key, at least so the player doesn't have to go back to the ship every single time? Or is that not possible either?
 
I suspect that, much like the cell phone menu, this occurs in the "menu space" (vs "game space") Lua environment, so that would be a no. At least not in the way Sandbox+ does it.

The way i tested these was that i extracted the .todx files from misc_tables.vpp. The todx files are just XML, like XTBL. For each one, i put it into my mods folder, renamed it "classic_tod_override.todx", loaded a save in the ship, hit the "classic" option on the computer, and went into the game world. If you DON'T choose the TOD from the computer before going out into the game world, it may or may not work at first, but will then switch to some bastardization of the old and new settings. I suppose that some aspects of the current TOD/lighting settings are saved in the save file.

The next step is probably to use the recursive extractor to extract every individual file, then search them for references to these TOD files and also for uses of the player_set_tod function. I haven't done that yet.
 
It's not looking good. player_set_tod isn't referenced anywhere besides that one line in that one lua file. nightmare_dark isn't referenced anywhere outside of todx files themselves. Neither is the string "modern", outside of vehicle-related stuff and references to a "modern chair". I'm really not sure how the engine could be building its list.
 
Back
Top