Skip to content

Instantly share code, notes, and snippets.

autoexport=0
autosave_interval=15
autosave_slots=4
default_han_font=chi
display=-1
editor_holds_rebuild=1
gpu_probe=0
kb1_map_down=115
kb1_map_left=97
kb1_map_right=100

Open question: dynamic train shift assignment

I am going to try to explain my ideas for the dynamic assignment system. But to be super clear: the most important aspect of this design is that it preserves all the current order system elements as they exist in 1.13 and it is entirely opt-in. If you never flag stops as allowing schedule changes, and keep the schedule shift train sets as a single train, never repeated, you get Schedules 1.0 and your trains never dynamically change schedules.

How is a train assigned to a shift? Let's think about the easy case: a train has been just purchased, or has just been intervened. In this case the train is empty of pax and it has no location on the map, therefore it is valid to be assigned to anything. If this train is then put in the allowed set of trains of some Schedule Shift, and that shift becomes available, the sim can assign the train to the shift. Its state will then change to running a shift, the schedule system will record that particular shift as being take

[ModMeta]
schema=1
name=test pois
author=Weird and Wry
desc=test desc
version=1.0.0
[DemandCurve]
id = waw_demand_id_1
name = test demand 1
lon lat color text font_size max_lod transparent demand population
-2.2004 53.4831 ff4411 Sportsball One 1 3 0 waw_demand_id_1 10000000
2.1229 41.3809 1144ff Sportsball Two 1 3 0 waw_demand_id_1 5000000
-43.2303 -22.9122 44ff11 Sportsball Three 1 3 0 waw_demand_id_1 8000000
-83.7487 42.2659 ffff44 Sportsball Four 1 3 0 waw_demand_id_1 7000000
@carloscm
carloscm / gist:0d3488dd88bc759f442cdfa698b0c764
Created October 15, 2023 16:04
1.10 OSM key= whitelist
"type",
"aerialway",
"aeroway",
"amenity",
"barrier",
"boundary",
"admin_level",
"craft",
"emergency",
"lifeguard",
@carloscm
carloscm / gist:2a7f9d1b0135125358d18e450df0b54f
Last active October 2, 2023 20:40
fix texture array in bgfx dx12
diff --git a/thirdparty/bgfx/src/renderer_d3d12.cpp b/thirdparty/bgfx/src/renderer_d3d12.cpp
index 3a4194271..2a66d4c80 100644
--- a/thirdparty/bgfx/src/renderer_d3d12.cpp
+++ b/thirdparty/bgfx/src/renderer_d3d12.cpp
@@ -5387,7 +5387,7 @@ namespace bgfx { namespace d3d12
if (0 != kk)
{
kk = 0;
- for (uint8_t side = 0; side < numSides; ++side)
+ for (uint16_t side = 0; side < numSides; ++side)

image link

#include <stb_image_resize.h>
static void build_mips(uint8_t* data, size_t base, uint32_t w, uint32_t h)
{
uint32_t mw = w;
uint32_t mh = h;
uint32_t pw = w;
uint32_t ph = h;
size_t prev_start = base;
size_t last_size = size_t(w) * size_t(h) * 4;
// https://github.com/memononen/nanosvg
#include <nanosvg.h>
struct CLSVG {
vg::CommandListHandle handle = { VG_INVALID_HANDLE };
float width = 0.0f;
float height = 0.0f;
};
static uint32_t modulate_color_alpha(uint32_t color, float alpha) {
struct UIDeclare {
virtual bool button(const char* txt, int flags = 0) = 0;
virtual void label(const char* txt, int flags = 0) = 0;
virtual void space() = 0;
};
struct UILayoutEmit : public UIDeclare {
lay_context ctx;
lay_id root = 0;
eastl::vector<lay_id> ids;