incenter day 1
This commit is contained in:
parent
41a143b445
commit
7d54794c1f
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -6,6 +6,7 @@ struct Socket_Handle { u64 value; };
|
||||||
|
|
||||||
typedef s32 Socket_Error;
|
typedef s32 Socket_Error;
|
||||||
enum {
|
enum {
|
||||||
|
SocketError_Invalid,
|
||||||
SocketError_NOERROR,
|
SocketError_NOERROR,
|
||||||
SocketError_EAGAIN,
|
SocketError_EAGAIN,
|
||||||
SocketError_EBADF,
|
SocketError_EBADF,
|
||||||
|
@ -16,6 +17,21 @@ enum {
|
||||||
SocketError_ENOMEM,
|
SocketError_ENOMEM,
|
||||||
SocketError_ENOTCONN,
|
SocketError_ENOTCONN,
|
||||||
SocketError_ENOTSOCK,
|
SocketError_ENOTSOCK,
|
||||||
|
SocketError_Count,
|
||||||
|
};
|
||||||
|
|
||||||
|
global char* socket_error_strings[] = {
|
||||||
|
"Invalid",
|
||||||
|
"SocketError_NOERROR",
|
||||||
|
"SocketError_EAGAIN",
|
||||||
|
"SocketError_EBADF",
|
||||||
|
"SocketError_ECONNREFUSED",
|
||||||
|
"SocketError_EFAULT",
|
||||||
|
"SocketError_EINTR",
|
||||||
|
"SocketError_EINVAL",
|
||||||
|
"SocketError_ENOMEM",
|
||||||
|
"SocketError_ENOTCONN",
|
||||||
|
"SocketError_ENOTSOCK",
|
||||||
};
|
};
|
||||||
|
|
||||||
u16 endian_swap_u16(u16 v);
|
u16 endian_swap_u16(u16 v);
|
||||||
|
|
|
@ -105,8 +105,8 @@ assembly_add_led(
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
assembly_strip_create_leds(
|
assembly_strip_append_leds(
|
||||||
Assembly_Array* a,
|
Assembly_Array* a,
|
||||||
Assembly_Handle h,
|
Assembly_Handle h,
|
||||||
Assembly_Strip* strip,
|
Assembly_Strip* strip,
|
||||||
v3 start, v3 end,
|
v3 start, v3 end,
|
||||||
|
|
|
@ -29,6 +29,22 @@ pm_smoothstep_v3(v3 p)
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
r32
|
||||||
|
pm_easein_cubic_r32(r32 v)
|
||||||
|
{
|
||||||
|
assert(v >= 0 && v <= 1);
|
||||||
|
return 4 * v * v * v;
|
||||||
|
}
|
||||||
|
|
||||||
|
r32
|
||||||
|
pm_easeout_cubic_r32(r32 v)
|
||||||
|
{
|
||||||
|
assert(v >= 0 && v <= 1);
|
||||||
|
r32 a = -2 * v + 2;
|
||||||
|
r32 a3 = a * a * a;
|
||||||
|
return 1 - a3 / 2;
|
||||||
|
}
|
||||||
|
|
||||||
r32
|
r32
|
||||||
pm_easeinout_cubic_r32(r32 v)
|
pm_easeinout_cubic_r32(r32 v)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
// NOTE: This file is autogenerated by csv_to_cstruct.js
|
// NOTE: This file is autogenerated by csv_to_cstruct.js
|
||||||
// NOTE: These are values for Incenter_City_Id
|
// NOTE: These are values for Incenter_City_Id
|
||||||
|
#define BLACK_ROCK_LED_FIRST 90
|
||||||
|
#define BLACK_ROCK_LED_OPL 140
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
|
|
||||||
city_black_rock = 0,
|
city_black_rock = 0,
|
||||||
|
@ -566,7 +569,7 @@ global Incenter_City_Desc city_descs[] = {
|
||||||
.id = city_black_rock,
|
.id = city_black_rock,
|
||||||
.lat = -90.0f,
|
.lat = -90.0f,
|
||||||
.lon = 0,
|
.lon = 0,
|
||||||
.sacn_universe = city_black_rock,
|
.sacn_universe = 29,
|
||||||
},
|
},
|
||||||
[city_secondary_lagos] = {
|
[city_secondary_lagos] = {
|
||||||
.id = city_secondary_lagos,
|
.id = city_secondary_lagos,
|
||||||
|
|
|
@ -45,12 +45,25 @@ incenter_interface_connection_thread_proc(u8* user_data)
|
||||||
}
|
}
|
||||||
ins->interface_socket = os_socket_create(AF_INET, SOCK_DGRAM, 0);
|
ins->interface_socket = os_socket_create(AF_INET, SOCK_DGRAM, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (err == SocketError_EINTR) {
|
||||||
|
printf("Recvfrom returned EINTR, trying again\n");
|
||||||
|
continue; // retry the same operation, as it was interrupted
|
||||||
|
}
|
||||||
|
|
||||||
if (err == SocketError_NOERROR) {
|
if (err == SocketError_NOERROR) {
|
||||||
next_msg->base[next_msg->size] = 0;
|
next_msg->base[next_msg->size] = 0;
|
||||||
// write_next isn't incremented until here because the message
|
// write_next isn't incremented until here because the message
|
||||||
// is not ready to be read until this point
|
// is not ready to be read until this point
|
||||||
ins->interface_messages_write_next = (ins->interface_messages_write_next + 1) % INTERFACE_MESSAGES_CAP;
|
ins->interface_messages_write_next = (ins->interface_messages_write_next + 1) % INTERFACE_MESSAGES_CAP;
|
||||||
|
} else {
|
||||||
|
char* errstr = (char*)"Invalid";
|
||||||
|
if (err > SocketError_Invalid && err < SocketError_Count) {
|
||||||
|
errstr = socket_error_strings[err];
|
||||||
|
}
|
||||||
|
// TODO: if you hit an EFAULT, go check how big the buffer
|
||||||
|
// recvfrom was trying to write into
|
||||||
|
printf("Socket Error: %s - code: %d\n", errstr, (s32)err);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -115,6 +128,7 @@ incenter_handle_sliding_scale_msg(Incenter_State* ins, Incenter_Scene scene, cha
|
||||||
case 'C': {
|
case 'C': {
|
||||||
live_answers_input_r32(ins, scene, ins->input_pct);
|
live_answers_input_r32(ins, scene, ins->input_pct);
|
||||||
ins->scene_mode = Incenter_SceneMode_Passive;
|
ins->scene_mode = Incenter_SceneMode_Passive;
|
||||||
|
ins->scene_time = 0;
|
||||||
} break;
|
} break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -143,6 +157,7 @@ incenter_handle_yes_no_msg(Incenter_State* ins, Incenter_Scene scene, char msg)
|
||||||
|
|
||||||
live_answers_input_u32(ins, scene, ins->input_option);
|
live_answers_input_u32(ins, scene, ins->input_option);
|
||||||
ins->scene_mode = Incenter_SceneMode_Passive;
|
ins->scene_mode = Incenter_SceneMode_Passive;
|
||||||
|
ins->scene_time = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void
|
internal void
|
||||||
|
@ -159,6 +174,7 @@ incenter_handle_three_option_msg(Incenter_State* ins, Incenter_Scene scene, char
|
||||||
|
|
||||||
live_answers_input_u32(ins, scene, ins->input_option);
|
live_answers_input_u32(ins, scene, ins->input_option);
|
||||||
ins->scene_mode = Incenter_SceneMode_Passive;
|
ins->scene_mode = Incenter_SceneMode_Passive;
|
||||||
|
ins->scene_time = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void
|
internal void
|
||||||
|
|
|
@ -148,9 +148,17 @@ live_answers_save(Live_Answers_File file, Live_Answers_File_Bucket* new_bucket)
|
||||||
os_file_close(fh);
|
os_file_close(fh);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
# define MAYBE_SKIP_SAVING_INPUT
|
||||||
|
#else
|
||||||
|
# define MAYBE_SKIP_SAVING_INPUT return
|
||||||
|
#endif
|
||||||
|
|
||||||
internal void
|
internal void
|
||||||
live_answers_input_u32(Incenter_State* ins, Incenter_Scene scene, u32 value)
|
live_answers_input_u32(Incenter_State* ins, Incenter_Scene scene, u32 value)
|
||||||
{
|
{
|
||||||
|
MAYBE_SKIP_SAVING_INPUT;
|
||||||
|
|
||||||
scratch_get(scratch);
|
scratch_get(scratch);
|
||||||
Live_Answers_File file = live_answers_load(scene, scratch.a);
|
Live_Answers_File file = live_answers_load(scene, scratch.a);
|
||||||
if (file.header == 0) {
|
if (file.header == 0) {
|
||||||
|
@ -186,6 +194,8 @@ live_answers_input_u32(Incenter_State* ins, Incenter_Scene scene, u32 value)
|
||||||
internal void
|
internal void
|
||||||
live_answers_input_r32(Incenter_State* ins, Incenter_Scene scene, r32 value)
|
live_answers_input_r32(Incenter_State* ins, Incenter_Scene scene, r32 value)
|
||||||
{
|
{
|
||||||
|
MAYBE_SKIP_SAVING_INPUT;
|
||||||
|
|
||||||
scratch_get(scratch);
|
scratch_get(scratch);
|
||||||
Live_Answers_File file = live_answers_load(scene, scratch.a);
|
Live_Answers_File file = live_answers_load(scene, scratch.a);
|
||||||
if (file.header == 0) {
|
if (file.header == 0) {
|
||||||
|
|
|
@ -975,7 +975,7 @@ pattern_add_bar_chart(Assembly_Pixel_Buffer pixels, Assembly_Strip_Array strips,
|
||||||
u32 led_index = strip.pixels[led_i];
|
u32 led_index = strip.pixels[led_i];
|
||||||
|
|
||||||
// Bar Chart
|
// Bar Chart
|
||||||
r32 pct = 1 - ((r32)led_i / (r32)strip.pixels_len);
|
r32 pct = ((r32)led_i / (r32)strip.pixels_len);
|
||||||
if (pct < row.prop) {
|
if (pct < row.prop) {
|
||||||
r32 cpct = pct / row.prop;
|
r32 cpct = pct / row.prop;
|
||||||
Assembly_Pixel p = color_ramp_eval_pixel(color_ramp, cpct);
|
Assembly_Pixel p = color_ramp_eval_pixel(color_ramp, cpct);
|
||||||
|
@ -1048,6 +1048,48 @@ pattern_bar_chart_over_time(Assembly_Pixel_Buffer pixels, Assembly_Strip_Array s
|
||||||
pattern_add_bar_chart(pixels, strips, ins, scene, year_at, month_at, xray_ramp);
|
pattern_add_bar_chart(pixels, strips, ins, scene, year_at, month_at, xray_ramp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
pattern_scene_input_pulse(Assembly_Pixel_Buffer pixels, Assembly_Strip_Array strips, Incenter_State* ins)
|
||||||
|
{
|
||||||
|
r32 pulse_duration = 1;
|
||||||
|
if (ins->scene_time > pulse_duration) return;
|
||||||
|
|
||||||
|
r32 pulse_pct = min(ins->scene_time / pulse_duration, 1);
|
||||||
|
r32 height = (pm_easeout_cubic_r32(pulse_pct) * 1.4f) - 0.2f;
|
||||||
|
r32 brightness = 1 - pulse_pct;
|
||||||
|
|
||||||
|
r32 strip_len = (r32)(BLACK_ROCK_LED_OPL - BLACK_ROCK_LED_FIRST);
|
||||||
|
|
||||||
|
Assembly_Strip brc_strip = strips.strips[city_black_rock];
|
||||||
|
for (u32 i = BLACK_ROCK_LED_FIRST; i < BLACK_ROCK_LED_OPL; i++)
|
||||||
|
{
|
||||||
|
u32 led_i = brc_strip.pixels[i];
|
||||||
|
r32 pct_i = (r32)i / (r32)strip_len;
|
||||||
|
pct_i = 1 - pct_i;
|
||||||
|
r32 pct_d = fabsf(pct_i - height);
|
||||||
|
r32 b = max(0, 0.1f - pct_d) / 0.1f;
|
||||||
|
pixels.pixels[led_i] = color_v3_to_assembly_pixel_faded((v3){0, 0, 1}, b * brightness);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////
|
||||||
|
// ANYBODY HOME?
|
||||||
|
|
||||||
|
void
|
||||||
|
pattern_anybody_home(Assembly_Pixel_Buffer pixels, Assembly_Strip_Array strips, Incenter_State* ins)
|
||||||
|
{
|
||||||
|
pattern_color(pixels, strips, 0, 0, 0);
|
||||||
|
|
||||||
|
Assembly_Strip strip = strips.strips[city_black_rock];
|
||||||
|
for (u32 i = BLACK_ROCK_LED_FIRST; i < BLACK_ROCK_LED_OPL; i++)
|
||||||
|
{
|
||||||
|
u32 led_i = strip.pixels[i];
|
||||||
|
pixels.pixels[led_i] = color_v3_to_assembly_pixel((v3){0, 0, 1});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
////////////////////////////////////////
|
////////////////////////////////////////
|
||||||
// Felt Isolated
|
// Felt Isolated
|
||||||
|
|
||||||
|
@ -1085,14 +1127,16 @@ void
|
||||||
pattern_felt_isolated_passive(Assembly_Pixel_Buffer pixels, Assembly_Strip_Array strips, Incenter_State* ins)
|
pattern_felt_isolated_passive(Assembly_Pixel_Buffer pixels, Assembly_Strip_Array strips, Incenter_State* ins)
|
||||||
{
|
{
|
||||||
Incenter_Scene scene = ins->scenes[ins->scene_at];
|
Incenter_Scene scene = ins->scenes[ins->scene_at];
|
||||||
r32 scene_time = ins->scene_time;
|
r32 scene_speed = 4;
|
||||||
|
r32 scene_time = ins->scene_time * scene_speed;
|
||||||
|
|
||||||
pattern_color(pixels, strips, 0, 0, 0);
|
pattern_color(pixels, strips, 0, 0, 0);
|
||||||
|
pattern_scene_input_pulse(pixels, strips, ins);
|
||||||
for (u32 row_i = 0; row_i < scene.data_len; row_i++)
|
for (u32 row_i = 0; row_i < scene.data_len; row_i++)
|
||||||
{
|
{
|
||||||
Incenter_Data_Row row = scene.data[row_i];
|
Incenter_Data_Row row = scene.data[row_i];
|
||||||
Assembly_Strip strip = strips.strips[row.id];
|
Assembly_Strip strip = strips.strips[row.id];
|
||||||
u32 pixel_start = row.prop * strip.pixels_len;
|
u32 pixel_start = strip.pixels_len - (row.prop * strip.pixels_len);
|
||||||
r32 row_offset = (.1439f * row_i);
|
r32 row_offset = (.1439f * row_i);
|
||||||
r32 b = pm_sinf_01(ins->scene_time + row_offset);
|
r32 b = pm_sinf_01(ins->scene_time + row_offset);
|
||||||
|
|
||||||
|
@ -1141,7 +1185,8 @@ pattern_bar_chart_bubbly_intro(Assembly_Pixel_Buffer pixels, Assembly_Strip_Arra
|
||||||
if (!scene.data) return;
|
if (!scene.data) return;
|
||||||
|
|
||||||
pattern_color(pixels, strips, 0, 0, 0);
|
pattern_color(pixels, strips, 0, 0, 0);
|
||||||
r32 scene_time = ins->scene_time;
|
r32 scene_speed = 3;
|
||||||
|
r32 scene_time = ins->scene_time * scene_speed;
|
||||||
|
|
||||||
for (u32 row_i = 0; row_i < scene.data_len; row_i++)
|
for (u32 row_i = 0; row_i < scene.data_len; row_i++)
|
||||||
{
|
{
|
||||||
|
@ -1230,7 +1275,7 @@ pattern_bar_chart_random_fill(Assembly_Pixel_Buffer pixels, Assembly_Strip_Array
|
||||||
Assembly_Pixel color = color_v3_to_assembly_pixel((v3){1, .9f, 0});
|
Assembly_Pixel color = color_v3_to_assembly_pixel((v3){1, .9f, 0});
|
||||||
assert(color.r != 1);
|
assert(color.r != 1);
|
||||||
|
|
||||||
r32 scene_time = ins->scene_time;
|
r32 scene_time = ins->scene_time * 8;
|
||||||
r32 dots_per_second = 5;
|
r32 dots_per_second = 5;
|
||||||
u32 iter_cap = scene_time * dots_per_second;
|
u32 iter_cap = scene_time * dots_per_second;
|
||||||
for (u32 row_i = 0; row_i < scene.data_len; row_i++)
|
for (u32 row_i = 0; row_i < scene.data_len; row_i++)
|
||||||
|
@ -1387,13 +1432,19 @@ pattern_sun_transition_shrink(Assembly_Pixel_Buffer pixels, Assembly_Strip_Array
|
||||||
{
|
{
|
||||||
r32 radius_start = INCENTER_FEET(15);
|
r32 radius_start = INCENTER_FEET(15);
|
||||||
r32 radius_end = INCENTER_FEET(0);
|
r32 radius_end = INCENTER_FEET(0);
|
||||||
pattern_sun_transition(pixels, strips, ins, radius_start, radius_end, Incenter_SceneMode_Passive);
|
u32 scene_mode = Incenter_SceneMode_Passive;
|
||||||
|
pattern_sun_transition(pixels, strips, ins, radius_start, radius_end, scene_mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
pattern_sun_transition_grow(Assembly_Pixel_Buffer pixels, Assembly_Strip_Array strips, Incenter_State* ins)
|
pattern_sun_transition_grow(Assembly_Pixel_Buffer pixels, Assembly_Strip_Array strips, Incenter_State* ins)
|
||||||
{
|
{
|
||||||
r32 radius_start = INCENTER_FEET(0);
|
r32 radius_start = INCENTER_FEET(0);
|
||||||
r32 radius_end = INCENTER_FEET(15);
|
r32 radius_end = INCENTER_FEET(40);
|
||||||
pattern_sun_transition(pixels, strips, ins, radius_start, radius_end, Incenter_SceneMode_Input);
|
u32 scene_mode = Incenter_SceneMode_Input;
|
||||||
|
if (ins->scene_at == Incenter_Scene_WelcomeHome ||
|
||||||
|
ins->scene_at == Incenter_Scene_AnyoneHome) {
|
||||||
|
scene_mode = Incenter_SceneMode_Passive;
|
||||||
|
}
|
||||||
|
pattern_sun_transition(pixels, strips, ins, radius_start, radius_end, scene_mode);
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,289 @@
|
||||||
|
|
||||||
|
internal void
|
||||||
|
incenter_scene_descs_init()
|
||||||
|
{
|
||||||
|
incenter_scene_descs[Incenter_Scene_AnyoneHome] = (Incenter_Scene){
|
||||||
|
.name = "AnyoneHome",
|
||||||
|
.patterns = {
|
||||||
|
[Incenter_SceneMode_Intro] = pattern_anybody_home,
|
||||||
|
[Incenter_SceneMode_Passive] = pattern_anybody_home,
|
||||||
|
},
|
||||||
|
.kind = Incenter_SceneKind_Information,
|
||||||
|
};
|
||||||
|
|
||||||
|
incenter_scene_descs[Incenter_Scene_WelcomeHome] = (Incenter_Scene){
|
||||||
|
.name = "WelcomeHome",
|
||||||
|
.patterns = {
|
||||||
|
[Incenter_SceneMode_Intro] = pattern_sun_passive,
|
||||||
|
[Incenter_SceneMode_Passive] = pattern_sun_passive,
|
||||||
|
},
|
||||||
|
.kind = Incenter_SceneKind_Information,
|
||||||
|
};
|
||||||
|
|
||||||
|
incenter_scene_descs[Incenter_Scene_Question_FeltIsolated] = (Incenter_Scene){
|
||||||
|
.name = "FeltIsolated",
|
||||||
|
.patterns = {
|
||||||
|
[Incenter_SceneMode_Intro] = pattern_felt_isolated_intro,
|
||||||
|
[Incenter_SceneMode_Passive] = pattern_felt_isolated_passive,
|
||||||
|
},
|
||||||
|
.data = question_1_data,
|
||||||
|
.data_len = question_1_len,
|
||||||
|
.kind = Incenter_SceneKind_YesOrNo,
|
||||||
|
};
|
||||||
|
|
||||||
|
incenter_scene_descs[Incenter_Scene_Question_FeltFearAnxiety] = (Incenter_Scene){
|
||||||
|
.name = "FeltFearAnxiety",
|
||||||
|
.patterns = {
|
||||||
|
[Incenter_SceneMode_Intro] = pattern_felt_isolated_intro,
|
||||||
|
[Incenter_SceneMode_Passive] = pattern_felt_isolated_passive,
|
||||||
|
},
|
||||||
|
.data = question_2_data,
|
||||||
|
.data_len = question_2_len,
|
||||||
|
.kind = Incenter_SceneKind_ThreeOption,
|
||||||
|
};
|
||||||
|
|
||||||
|
incenter_scene_descs[Incenter_Scene_Question_FeltPowerless] = (Incenter_Scene){
|
||||||
|
.name = "FeltPowerless",
|
||||||
|
.patterns = {
|
||||||
|
[Incenter_SceneMode_Intro] = pattern_felt_isolated_intro,
|
||||||
|
[Incenter_SceneMode_Passive] = pattern_felt_isolated_passive,
|
||||||
|
},
|
||||||
|
.data = question_5_data,
|
||||||
|
.data_len = question_5_len,
|
||||||
|
.kind = Incenter_SceneKind_YesOrNo,
|
||||||
|
};
|
||||||
|
|
||||||
|
incenter_scene_descs[Incenter_Scene_Question_LostAccessToResources] = (Incenter_Scene){
|
||||||
|
.name = "LostAccessToResources",
|
||||||
|
.patterns = {
|
||||||
|
[Incenter_SceneMode_Intro] = pattern_bar_chart,
|
||||||
|
[Incenter_SceneMode_Passive] = pattern_bar_chart,
|
||||||
|
},
|
||||||
|
.data = question_3_data,
|
||||||
|
.data_len = question_3_len,
|
||||||
|
.kind = Incenter_SceneKind_YesOrNo,
|
||||||
|
};
|
||||||
|
|
||||||
|
incenter_scene_descs[Incenter_Scene_Question_LostLovedOne] = (Incenter_Scene){
|
||||||
|
.name = "LostLovedOne",
|
||||||
|
.patterns = {
|
||||||
|
[Incenter_SceneMode_Intro] = pattern_bar_chart_over_time,
|
||||||
|
[Incenter_SceneMode_Passive] = pattern_bar_chart_over_time,
|
||||||
|
},
|
||||||
|
.data = question_4_data,
|
||||||
|
.data_len = question_4_len,
|
||||||
|
.kind = Incenter_SceneKind_YesOrNo,
|
||||||
|
};
|
||||||
|
|
||||||
|
// TODO: We need an animation that communicates healing / connection
|
||||||
|
// grow out from the person's answer into the entire planet
|
||||||
|
incenter_scene_descs[Incenter_Scene_Question_BegunToHeal] = (Incenter_Scene){
|
||||||
|
.name = "BegunToHeal",
|
||||||
|
.patterns = {
|
||||||
|
[Incenter_SceneMode_Intro] = pattern_bar_chart_bubbly_intro,
|
||||||
|
[Incenter_SceneMode_Passive] = pattern_bar_chart_bubbly_passive,
|
||||||
|
},
|
||||||
|
// no data .data = question_6_data,
|
||||||
|
// no data .data_len = question_6_len,
|
||||||
|
.kind = Incenter_SceneKind_SlidingScale,
|
||||||
|
};
|
||||||
|
|
||||||
|
incenter_scene_descs[Incenter_Scene_OnPlayaResources] = (Incenter_Scene){
|
||||||
|
.name = "OnPlayaResources",
|
||||||
|
.patterns = {
|
||||||
|
[Incenter_SceneMode_Intro] = pattern_bar_chart,
|
||||||
|
[Incenter_SceneMode_Passive] = pattern_bar_chart,
|
||||||
|
},
|
||||||
|
.kind = Incenter_SceneKind_Information,
|
||||||
|
};
|
||||||
|
|
||||||
|
incenter_scene_descs[Incenter_Scene_Question_RelationshipCommunitySupport] = (Incenter_Scene){
|
||||||
|
.name = "RelationshipCommunitySupport",
|
||||||
|
.patterns = {
|
||||||
|
[Incenter_SceneMode_Intro] = pattern_bar_chart_with_connections,
|
||||||
|
[Incenter_SceneMode_Passive] = pattern_bar_chart_with_connections,
|
||||||
|
},
|
||||||
|
.data = question_7_data,
|
||||||
|
.data_len = question_7_len,
|
||||||
|
.kind = Incenter_SceneKind_SlidingScale,
|
||||||
|
};
|
||||||
|
|
||||||
|
incenter_scene_descs[Incenter_Scene_Question_ConnectionFriendsFamily] = (Incenter_Scene){
|
||||||
|
.name = "ConnectionFriendsFamily",
|
||||||
|
.patterns = {
|
||||||
|
[Incenter_SceneMode_Intro] = pattern_bar_chart_with_connections,
|
||||||
|
[Incenter_SceneMode_Passive] = pattern_bar_chart_with_connections,
|
||||||
|
},
|
||||||
|
.data = question_8_data,
|
||||||
|
.data_len = question_8_len,
|
||||||
|
.kind = Incenter_SceneKind_SlidingScale,
|
||||||
|
};
|
||||||
|
|
||||||
|
incenter_scene_descs[Incenter_Scene_Question_ValueConnections] = (Incenter_Scene){
|
||||||
|
.name = "ValueConnections",
|
||||||
|
.patterns = {
|
||||||
|
#if 0
|
||||||
|
[Incenter_SceneMode_Intro] = pattern_bar_chart_with_connections,
|
||||||
|
[Incenter_SceneMode_Passive] = pattern_bar_chart_with_connections,
|
||||||
|
#endif
|
||||||
|
[Incenter_SceneMode_Intro] = pattern_bar_chart_random_fill,
|
||||||
|
[Incenter_SceneMode_Passive] = pattern_bar_chart_random_fill,
|
||||||
|
},
|
||||||
|
.data = question_9_data,
|
||||||
|
.data_len = question_9_len,
|
||||||
|
.kind = Incenter_SceneKind_SlidingScale,
|
||||||
|
};
|
||||||
|
|
||||||
|
incenter_scene_descs[Incenter_Scene_Question_FindHappiness] = (Incenter_Scene){
|
||||||
|
.name = "FindHappiness",
|
||||||
|
.patterns = {
|
||||||
|
[Incenter_SceneMode_Intro] = pattern_bar_chart,
|
||||||
|
[Incenter_SceneMode_Passive] = pattern_bar_chart,
|
||||||
|
},
|
||||||
|
.data = question_10_data,
|
||||||
|
.data_len = question_10_len,
|
||||||
|
.kind = Incenter_SceneKind_YesOrNo,
|
||||||
|
};
|
||||||
|
|
||||||
|
incenter_scene_descs[Incenter_Scene_Question_FeltExcludedIdentity] = (Incenter_Scene){
|
||||||
|
.name = "FeltExcludedIdentity",
|
||||||
|
.patterns = {
|
||||||
|
[Incenter_SceneMode_Intro] = pattern_bar_chart,
|
||||||
|
[Incenter_SceneMode_Passive] = pattern_bar_chart,
|
||||||
|
},
|
||||||
|
.data = question_13_data,
|
||||||
|
.data_len = question_13_len,
|
||||||
|
.kind = Incenter_SceneKind_YesOrNo,
|
||||||
|
};
|
||||||
|
|
||||||
|
incenter_scene_descs[Incenter_Scene_Question_RepresentedByLeadership] = (Incenter_Scene){
|
||||||
|
.name = "RepresentedByLeadership",
|
||||||
|
.patterns = {
|
||||||
|
[Incenter_SceneMode_Intro] = pattern_bar_chart,
|
||||||
|
[Incenter_SceneMode_Passive] = pattern_bar_chart,
|
||||||
|
},
|
||||||
|
.data = question_14_data,
|
||||||
|
.data_len = question_14_len,
|
||||||
|
.kind = Incenter_SceneKind_SlidingScale,
|
||||||
|
};
|
||||||
|
|
||||||
|
incenter_scene_descs[Incenter_Scene_Question_LearningOpenMinded] = (Incenter_Scene){
|
||||||
|
.name = "LearningOpenMinded",
|
||||||
|
.patterns = {
|
||||||
|
[Incenter_SceneMode_Intro] = pattern_bar_chart,
|
||||||
|
[Incenter_SceneMode_Passive] = pattern_bar_chart,
|
||||||
|
},
|
||||||
|
.data = question_12_data,
|
||||||
|
.data_len = question_12_len,
|
||||||
|
.kind = Incenter_SceneKind_SlidingScale,
|
||||||
|
};
|
||||||
|
|
||||||
|
incenter_scene_descs[Incenter_Scene_Question_ProtectOurEarth] = (Incenter_Scene){
|
||||||
|
.name = "ProtectOurEarth",
|
||||||
|
.patterns = {
|
||||||
|
[Incenter_SceneMode_Intro] = pattern_bar_chart,
|
||||||
|
[Incenter_SceneMode_Passive] = pattern_bar_chart,
|
||||||
|
},
|
||||||
|
.data = question_18_data,
|
||||||
|
.data_len = question_18_len,
|
||||||
|
.kind = Incenter_SceneKind_YesOrNo,
|
||||||
|
};
|
||||||
|
|
||||||
|
incenter_scene_descs[Incenter_Scene_Question_BelieveScienceRenewableTech] = (Incenter_Scene){
|
||||||
|
.name = "BelieveScienceRenewableTech",
|
||||||
|
.patterns = {
|
||||||
|
[Incenter_SceneMode_Intro] = pattern_bar_chart_random_fill,
|
||||||
|
[Incenter_SceneMode_Passive] = pattern_bar_chart_random_fill,
|
||||||
|
},
|
||||||
|
.data = question_19_data,
|
||||||
|
.data_len = question_19_len,
|
||||||
|
.kind = Incenter_SceneKind_YesOrNo,
|
||||||
|
};
|
||||||
|
|
||||||
|
incenter_scene_descs[Incenter_Scene_Question_StriveMoreEcoFriendly] = (Incenter_Scene){
|
||||||
|
.name = "StriveMoreEcoFriendly",
|
||||||
|
.patterns = {
|
||||||
|
[Incenter_SceneMode_Intro] = pattern_bar_chart,
|
||||||
|
[Incenter_SceneMode_Passive] = pattern_bar_chart,
|
||||||
|
},
|
||||||
|
// .data = question_22_data,
|
||||||
|
// .data_len = question_22_len,
|
||||||
|
.kind = Incenter_SceneKind_YesOrNo,
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
incenter_scene_descs[Incenter_Scene_Question_ActionToHelpPlanet] = (Incenter_Scene){
|
||||||
|
.name = "ActionToHelpPlanet",
|
||||||
|
.patterns = {
|
||||||
|
[Incenter_SceneMode_Intro] = pattern_bar_chart,
|
||||||
|
[Incenter_SceneMode_Passive] = pattern_bar_chart,
|
||||||
|
},
|
||||||
|
.data = question_20_data,
|
||||||
|
.data_len = question_20_len,
|
||||||
|
.kind = Incenter_SceneKind_YesOrNo,
|
||||||
|
};
|
||||||
|
|
||||||
|
incenter_scene_descs[Incenter_Scene_Question_HowYouFaceChallenges] = (Incenter_Scene){
|
||||||
|
.name = "HowYouFaceChallenges",
|
||||||
|
.patterns = {
|
||||||
|
[Incenter_SceneMode_Intro] = pattern_bar_chart,
|
||||||
|
[Incenter_SceneMode_Passive] = pattern_bar_chart,
|
||||||
|
},
|
||||||
|
.data = question_6_data,
|
||||||
|
.data_len = question_6_len,
|
||||||
|
.kind = Incenter_SceneKind_YesOrNo,
|
||||||
|
};
|
||||||
|
|
||||||
|
incenter_scene_descs[Incenter_Scene_Question_InspiredToHelpOthers] = (Incenter_Scene){
|
||||||
|
.name = "InspiredToHelpOthers",
|
||||||
|
.patterns = {
|
||||||
|
[Incenter_SceneMode_Intro] = pattern_bar_chart,
|
||||||
|
[Incenter_SceneMode_Passive] = pattern_bar_chart,
|
||||||
|
},
|
||||||
|
.data = question_11_data,
|
||||||
|
.data_len = question_11_len,
|
||||||
|
.kind = Incenter_SceneKind_YesOrNo,
|
||||||
|
};
|
||||||
|
|
||||||
|
incenter_scene_descs[Incenter_Scene_Question_PracticeChangeHopeFor] = (Incenter_Scene){
|
||||||
|
.name = "PracticeChangeHopeFor",
|
||||||
|
.patterns = {
|
||||||
|
[Incenter_SceneMode_Intro] = pattern_bar_chart,
|
||||||
|
[Incenter_SceneMode_Passive] = pattern_bar_chart,
|
||||||
|
},
|
||||||
|
.data = question_17_data,
|
||||||
|
.data_len = question_17_len,
|
||||||
|
.kind = Incenter_SceneKind_YesOrNo,
|
||||||
|
};
|
||||||
|
|
||||||
|
incenter_scene_descs[Incenter_Scene_Question_PracticeRadicalInclusion] = (Incenter_Scene){
|
||||||
|
.name = "PracticeRadicalInclusion",
|
||||||
|
.patterns = {
|
||||||
|
[Incenter_SceneMode_Intro] = pattern_bar_chart,
|
||||||
|
[Incenter_SceneMode_Passive] = pattern_bar_chart,
|
||||||
|
},
|
||||||
|
.data = question_16_data,
|
||||||
|
.data_len = question_16_len,
|
||||||
|
.kind = Incenter_SceneKind_YesOrNo,
|
||||||
|
};
|
||||||
|
|
||||||
|
incenter_scene_descs[Incenter_Scene_Question_CommunityFeelBelong] = (Incenter_Scene){
|
||||||
|
.name = "CommunityFeelBelong",
|
||||||
|
.patterns = {
|
||||||
|
[Incenter_SceneMode_Intro] = pattern_bar_chart,
|
||||||
|
[Incenter_SceneMode_Passive] = pattern_bar_chart,
|
||||||
|
},
|
||||||
|
.data = question_15_data,
|
||||||
|
.data_len = question_15_len,
|
||||||
|
.kind = Incenter_SceneKind_YesOrNo,
|
||||||
|
};
|
||||||
|
|
||||||
|
incenter_scene_descs[Incenter_Scene_Credits] = (Incenter_Scene){
|
||||||
|
.name = "Credits",
|
||||||
|
.patterns = {
|
||||||
|
[Incenter_SceneMode_Intro] = pattern_bar_chart,
|
||||||
|
[Incenter_SceneMode_Passive] = pattern_bar_chart,
|
||||||
|
},
|
||||||
|
.kind = Incenter_SceneKind_Information,
|
||||||
|
};
|
||||||
|
}
|
|
@ -39,294 +39,6 @@ enum {
|
||||||
|
|
||||||
global Incenter_Scene incenter_scene_descs[Incenter_Scene_Count];
|
global Incenter_Scene incenter_scene_descs[Incenter_Scene_Count];
|
||||||
|
|
||||||
internal void
|
internal void incenter_scene_descs_init();
|
||||||
incenter_scene_descs_init()
|
|
||||||
{
|
|
||||||
incenter_scene_descs[Incenter_Scene_AnyoneHome] = (Incenter_Scene){
|
|
||||||
.name = "AnyoneHome",
|
|
||||||
.patterns = {
|
|
||||||
[Incenter_SceneMode_Intro] = pattern_sun_passive,
|
|
||||||
[Incenter_SceneMode_Passive] = pattern_sun_passive,
|
|
||||||
},
|
|
||||||
.kind = Incenter_SceneKind_Information,
|
|
||||||
};
|
|
||||||
|
|
||||||
incenter_scene_descs[Incenter_Scene_WelcomeHome] = (Incenter_Scene){
|
|
||||||
.name = "WelcomeHome",
|
|
||||||
.patterns = {
|
|
||||||
[Incenter_SceneMode_Intro] = pattern_rainbow,
|
|
||||||
[Incenter_SceneMode_Passive] = pattern_rainbow,
|
|
||||||
},
|
|
||||||
.kind = Incenter_SceneKind_Information,
|
|
||||||
};
|
|
||||||
|
|
||||||
incenter_scene_descs[Incenter_Scene_Question_FeltIsolated] = (Incenter_Scene){
|
|
||||||
.name = "FeltIsolated",
|
|
||||||
.patterns = {
|
|
||||||
[Incenter_SceneMode_Intro] = pattern_felt_isolated_intro,
|
|
||||||
[Incenter_SceneMode_Passive] = pattern_felt_isolated_passive,
|
|
||||||
},
|
|
||||||
.data = question_1_data,
|
|
||||||
.data_len = question_1_len,
|
|
||||||
.kind = Incenter_SceneKind_YesOrNo,
|
|
||||||
};
|
|
||||||
|
|
||||||
incenter_scene_descs[Incenter_Scene_Question_FeltFearAnxiety] = (Incenter_Scene){
|
|
||||||
.name = "FeltFearAnxiety",
|
|
||||||
.patterns = {
|
|
||||||
[Incenter_SceneMode_Intro] = pattern_felt_isolated_intro,
|
|
||||||
[Incenter_SceneMode_Passive] = pattern_felt_isolated_passive,
|
|
||||||
},
|
|
||||||
.data = question_2_data,
|
|
||||||
.data_len = question_2_len,
|
|
||||||
.kind = Incenter_SceneKind_ThreeOption,
|
|
||||||
};
|
|
||||||
|
|
||||||
incenter_scene_descs[Incenter_Scene_Question_FeltPowerless] = (Incenter_Scene){
|
|
||||||
.name = "FeltPowerless",
|
|
||||||
.patterns = {
|
|
||||||
[Incenter_SceneMode_Intro] = pattern_felt_isolated_intro,
|
|
||||||
[Incenter_SceneMode_Passive] = pattern_felt_isolated_passive,
|
|
||||||
},
|
|
||||||
.data = question_5_data,
|
|
||||||
.data_len = question_5_len,
|
|
||||||
.kind = Incenter_SceneKind_YesOrNo,
|
|
||||||
};
|
|
||||||
|
|
||||||
incenter_scene_descs[Incenter_Scene_Question_LostAccessToResources] = (Incenter_Scene){
|
|
||||||
.name = "LostAccessToResources",
|
|
||||||
.patterns = {
|
|
||||||
[Incenter_SceneMode_Intro] = pattern_bar_chart,
|
|
||||||
[Incenter_SceneMode_Passive] = pattern_bar_chart,
|
|
||||||
},
|
|
||||||
.data = question_3_data,
|
|
||||||
.data_len = question_3_len,
|
|
||||||
.kind = Incenter_SceneKind_YesOrNo,
|
|
||||||
};
|
|
||||||
|
|
||||||
incenter_scene_descs[Incenter_Scene_Question_LostLovedOne] = (Incenter_Scene){
|
|
||||||
.name = "LostLovedOne",
|
|
||||||
.patterns = {
|
|
||||||
[Incenter_SceneMode_Intro] = pattern_bar_chart_over_time,
|
|
||||||
[Incenter_SceneMode_Passive] = pattern_bar_chart_over_time,
|
|
||||||
},
|
|
||||||
.data = question_4_data,
|
|
||||||
.data_len = question_4_len,
|
|
||||||
.kind = Incenter_SceneKind_YesOrNo,
|
|
||||||
};
|
|
||||||
|
|
||||||
// TODO: We need an animation that communicates healing / connection
|
|
||||||
// grow out from the person's answer into the entire planet
|
|
||||||
incenter_scene_descs[Incenter_Scene_Question_BegunToHeal] = (Incenter_Scene){
|
|
||||||
.name = "BegunToHeal",
|
|
||||||
.patterns = {
|
|
||||||
[Incenter_SceneMode_Intro] = pattern_bar_chart_bubbly_intro,
|
|
||||||
[Incenter_SceneMode_Passive] = pattern_bar_chart_bubbly_passive,
|
|
||||||
},
|
|
||||||
// no data .data = question_6_data,
|
|
||||||
// no data .data_len = question_6_len,
|
|
||||||
.kind = Incenter_SceneKind_SlidingScale,
|
|
||||||
};
|
|
||||||
|
|
||||||
incenter_scene_descs[Incenter_Scene_OnPlayaResources] = (Incenter_Scene){
|
|
||||||
.name = "OnPlayaResources",
|
|
||||||
.patterns = {
|
|
||||||
[Incenter_SceneMode_Intro] = pattern_bar_chart,
|
|
||||||
[Incenter_SceneMode_Passive] = pattern_bar_chart,
|
|
||||||
},
|
|
||||||
.kind = Incenter_SceneKind_Information,
|
|
||||||
};
|
|
||||||
|
|
||||||
incenter_scene_descs[Incenter_Scene_Question_RelationshipCommunitySupport] = (Incenter_Scene){
|
|
||||||
.name = "RelationshipCommunitySupport",
|
|
||||||
.patterns = {
|
|
||||||
[Incenter_SceneMode_Intro] = pattern_bar_chart_with_connections,
|
|
||||||
[Incenter_SceneMode_Passive] = pattern_bar_chart_with_connections,
|
|
||||||
},
|
|
||||||
.data = question_7_data,
|
|
||||||
.data_len = question_7_len,
|
|
||||||
.kind = Incenter_SceneKind_SlidingScale,
|
|
||||||
};
|
|
||||||
|
|
||||||
incenter_scene_descs[Incenter_Scene_Question_ConnectionFriendsFamily] = (Incenter_Scene){
|
|
||||||
.name = "ConnectionFriendsFamily",
|
|
||||||
.patterns = {
|
|
||||||
[Incenter_SceneMode_Intro] = pattern_bar_chart_with_connections,
|
|
||||||
[Incenter_SceneMode_Passive] = pattern_bar_chart_with_connections,
|
|
||||||
},
|
|
||||||
.data = question_8_data,
|
|
||||||
.data_len = question_8_len,
|
|
||||||
.kind = Incenter_SceneKind_SlidingScale,
|
|
||||||
};
|
|
||||||
|
|
||||||
incenter_scene_descs[Incenter_Scene_Question_ValueConnections] = (Incenter_Scene){
|
|
||||||
.name = "ValueConnections",
|
|
||||||
.patterns = {
|
|
||||||
#if 0
|
|
||||||
[Incenter_SceneMode_Intro] = pattern_bar_chart_with_connections,
|
|
||||||
[Incenter_SceneMode_Passive] = pattern_bar_chart_with_connections,
|
|
||||||
#endif
|
|
||||||
[Incenter_SceneMode_Intro] = pattern_bar_chart_random_fill,
|
|
||||||
[Incenter_SceneMode_Passive] = pattern_bar_chart_random_fill,
|
|
||||||
},
|
|
||||||
.data = question_9_data,
|
|
||||||
.data_len = question_9_len,
|
|
||||||
.kind = Incenter_SceneKind_SlidingScale,
|
|
||||||
};
|
|
||||||
|
|
||||||
incenter_scene_descs[Incenter_Scene_Question_FindHappiness] = (Incenter_Scene){
|
|
||||||
.name = "FindHappiness",
|
|
||||||
.patterns = {
|
|
||||||
[Incenter_SceneMode_Intro] = pattern_bar_chart,
|
|
||||||
[Incenter_SceneMode_Passive] = pattern_bar_chart,
|
|
||||||
},
|
|
||||||
.data = question_10_data,
|
|
||||||
.data_len = question_10_len,
|
|
||||||
.kind = Incenter_SceneKind_YesOrNo,
|
|
||||||
};
|
|
||||||
|
|
||||||
incenter_scene_descs[Incenter_Scene_Question_FeltExcludedIdentity] = (Incenter_Scene){
|
|
||||||
.name = "FeltExcludedIdentity",
|
|
||||||
.patterns = {
|
|
||||||
[Incenter_SceneMode_Intro] = pattern_bar_chart,
|
|
||||||
[Incenter_SceneMode_Passive] = pattern_bar_chart,
|
|
||||||
},
|
|
||||||
.data = question_13_data,
|
|
||||||
.data_len = question_13_len,
|
|
||||||
.kind = Incenter_SceneKind_YesOrNo,
|
|
||||||
};
|
|
||||||
|
|
||||||
incenter_scene_descs[Incenter_Scene_Question_RepresentedByLeadership] = (Incenter_Scene){
|
|
||||||
.name = "RepresentedByLeadership",
|
|
||||||
.patterns = {
|
|
||||||
[Incenter_SceneMode_Intro] = pattern_bar_chart,
|
|
||||||
[Incenter_SceneMode_Passive] = pattern_bar_chart,
|
|
||||||
},
|
|
||||||
.data = question_14_data,
|
|
||||||
.data_len = question_14_len,
|
|
||||||
.kind = Incenter_SceneKind_SlidingScale,
|
|
||||||
};
|
|
||||||
|
|
||||||
incenter_scene_descs[Incenter_Scene_Question_LearningOpenMinded] = (Incenter_Scene){
|
|
||||||
.name = "LearningOpenMinded",
|
|
||||||
.patterns = {
|
|
||||||
[Incenter_SceneMode_Intro] = pattern_bar_chart,
|
|
||||||
[Incenter_SceneMode_Passive] = pattern_bar_chart,
|
|
||||||
},
|
|
||||||
.data = question_12_data,
|
|
||||||
.data_len = question_12_len,
|
|
||||||
.kind = Incenter_SceneKind_SlidingScale,
|
|
||||||
};
|
|
||||||
|
|
||||||
incenter_scene_descs[Incenter_Scene_Question_ProtectOurEarth] = (Incenter_Scene){
|
|
||||||
.name = "ProtectOurEarth",
|
|
||||||
.patterns = {
|
|
||||||
[Incenter_SceneMode_Intro] = pattern_bar_chart,
|
|
||||||
[Incenter_SceneMode_Passive] = pattern_bar_chart,
|
|
||||||
},
|
|
||||||
.data = question_18_data,
|
|
||||||
.data_len = question_18_len,
|
|
||||||
.kind = Incenter_SceneKind_YesOrNo,
|
|
||||||
};
|
|
||||||
|
|
||||||
incenter_scene_descs[Incenter_Scene_Question_BelieveScienceRenewableTech] = (Incenter_Scene){
|
|
||||||
.name = "BelieveScienceRenewableTech",
|
|
||||||
.patterns = {
|
|
||||||
[Incenter_SceneMode_Intro] = pattern_bar_chart_random_fill,
|
|
||||||
[Incenter_SceneMode_Passive] = pattern_bar_chart_random_fill,
|
|
||||||
},
|
|
||||||
.data = question_19_data,
|
|
||||||
.data_len = question_19_len,
|
|
||||||
.kind = Incenter_SceneKind_YesOrNo,
|
|
||||||
};
|
|
||||||
|
|
||||||
incenter_scene_descs[Incenter_Scene_Question_StriveMoreEcoFriendly] = (Incenter_Scene){
|
|
||||||
.name = "StriveMoreEcoFriendly",
|
|
||||||
.patterns = {
|
|
||||||
[Incenter_SceneMode_Intro] = pattern_bar_chart,
|
|
||||||
[Incenter_SceneMode_Passive] = pattern_bar_chart,
|
|
||||||
},
|
|
||||||
// .data = question_22_data,
|
|
||||||
// .data_len = question_22_len,
|
|
||||||
.kind = Incenter_SceneKind_YesOrNo,
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
incenter_scene_descs[Incenter_Scene_Question_ActionToHelpPlanet] = (Incenter_Scene){
|
|
||||||
.name = "ActionToHelpPlanet",
|
|
||||||
.patterns = {
|
|
||||||
[Incenter_SceneMode_Intro] = pattern_bar_chart,
|
|
||||||
[Incenter_SceneMode_Passive] = pattern_bar_chart,
|
|
||||||
},
|
|
||||||
.data = question_20_data,
|
|
||||||
.data_len = question_20_len,
|
|
||||||
.kind = Incenter_SceneKind_YesOrNo,
|
|
||||||
};
|
|
||||||
|
|
||||||
incenter_scene_descs[Incenter_Scene_Question_HowYouFaceChallenges] = (Incenter_Scene){
|
|
||||||
.name = "HowYouFaceChallenges",
|
|
||||||
.patterns = {
|
|
||||||
[Incenter_SceneMode_Intro] = pattern_bar_chart,
|
|
||||||
[Incenter_SceneMode_Passive] = pattern_bar_chart,
|
|
||||||
},
|
|
||||||
.data = question_6_data,
|
|
||||||
.data_len = question_6_len,
|
|
||||||
.kind = Incenter_SceneKind_YesOrNo,
|
|
||||||
};
|
|
||||||
|
|
||||||
incenter_scene_descs[Incenter_Scene_Question_InspiredToHelpOthers] = (Incenter_Scene){
|
|
||||||
.name = "InspiredToHelpOthers",
|
|
||||||
.patterns = {
|
|
||||||
[Incenter_SceneMode_Intro] = pattern_bar_chart,
|
|
||||||
[Incenter_SceneMode_Passive] = pattern_bar_chart,
|
|
||||||
},
|
|
||||||
.data = question_11_data,
|
|
||||||
.data_len = question_11_len,
|
|
||||||
.kind = Incenter_SceneKind_YesOrNo,
|
|
||||||
};
|
|
||||||
|
|
||||||
incenter_scene_descs[Incenter_Scene_Question_PracticeChangeHopeFor] = (Incenter_Scene){
|
|
||||||
.name = "PracticeChangeHopeFor",
|
|
||||||
.patterns = {
|
|
||||||
[Incenter_SceneMode_Intro] = pattern_bar_chart,
|
|
||||||
[Incenter_SceneMode_Passive] = pattern_bar_chart,
|
|
||||||
},
|
|
||||||
.data = question_17_data,
|
|
||||||
.data_len = question_17_len,
|
|
||||||
.kind = Incenter_SceneKind_YesOrNo,
|
|
||||||
};
|
|
||||||
|
|
||||||
incenter_scene_descs[Incenter_Scene_Question_PracticeRadicalInclusion] = (Incenter_Scene){
|
|
||||||
.name = "PracticeRadicalInclusion",
|
|
||||||
.patterns = {
|
|
||||||
[Incenter_SceneMode_Intro] = pattern_bar_chart,
|
|
||||||
[Incenter_SceneMode_Passive] = pattern_bar_chart,
|
|
||||||
},
|
|
||||||
.data = question_16_data,
|
|
||||||
.data_len = question_16_len,
|
|
||||||
.kind = Incenter_SceneKind_YesOrNo,
|
|
||||||
};
|
|
||||||
|
|
||||||
incenter_scene_descs[Incenter_Scene_Question_CommunityFeelBelong] = (Incenter_Scene){
|
|
||||||
.name = "CommunityFeelBelong",
|
|
||||||
.patterns = {
|
|
||||||
[Incenter_SceneMode_Intro] = pattern_bar_chart,
|
|
||||||
[Incenter_SceneMode_Passive] = pattern_bar_chart,
|
|
||||||
},
|
|
||||||
.data = question_15_data,
|
|
||||||
.data_len = question_15_len,
|
|
||||||
.kind = Incenter_SceneKind_YesOrNo,
|
|
||||||
};
|
|
||||||
|
|
||||||
incenter_scene_descs[Incenter_Scene_Credits] = (Incenter_Scene){
|
|
||||||
.name = "Credits",
|
|
||||||
.patterns = {
|
|
||||||
[Incenter_SceneMode_Intro] = pattern_bar_chart,
|
|
||||||
[Incenter_SceneMode_Passive] = pattern_bar_chart,
|
|
||||||
},
|
|
||||||
.kind = Incenter_SceneKind_Information,
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif //INCENTER_SCENES_H
|
#endif //INCENTER_SCENES_H
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
|
|
||||||
#define SECONDARY_CITY_CAP 32
|
#define SECONDARY_CITY_CAP 50
|
||||||
u32 secondary_strips_len = 0;
|
u32 secondary_strips_len = 0;
|
||||||
Assembly_Strip* secondary_city_strips[SECONDARY_CITY_CAP];
|
Assembly_Strip* secondary_city_strips[SECONDARY_CITY_CAP];
|
||||||
|
|
||||||
|
#include "incenter_scenes.h"
|
||||||
#include "../user_space/incenter_patterns.c"
|
#include "../user_space/incenter_patterns.c"
|
||||||
#include "../user_space/incenter_secondary_patterns.c"
|
#include "../user_space/incenter_secondary_patterns.c"
|
||||||
#include "incenter_scenes.h"
|
#include "incenter_scenes.c"
|
||||||
#include "incenter_live_answers.c"
|
#include "incenter_live_answers.c"
|
||||||
|
|
||||||
////////////////////////////////////////////////
|
////////////////////////////////////////////////
|
||||||
|
@ -21,12 +22,40 @@ incenter_scenes_init(Incenter_State* ins, u32 cap, Allocator* a)
|
||||||
//Incenter_Scene_Question_LostAccessToResources;
|
//Incenter_Scene_Question_LostAccessToResources;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal void
|
||||||
|
incenter_reset_inputs(Incenter_State* ins)
|
||||||
|
{
|
||||||
|
// reset inputs
|
||||||
|
ins->input_pct = 0.5f;
|
||||||
|
ins->input_option = 0;
|
||||||
|
ins->input_advance = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
internal void
|
||||||
|
incenter_go_to_transitioning_in(Incenter_State* ins)
|
||||||
|
{
|
||||||
|
if (ins->scene_next != Incenter_Scene_WelcomeHome ||
|
||||||
|
ins->scene_at != Incenter_Scene_AnyoneHome) {
|
||||||
|
ins->transition_time = 0;
|
||||||
|
ins->scene_mode = Incenter_SceneMode_TransitioningIn;
|
||||||
|
ins->scene_time = 0;
|
||||||
|
} else {
|
||||||
|
ins->scene_mode = Incenter_SceneMode_Passive;
|
||||||
|
}
|
||||||
|
ins->scene_at = ins->scene_next;
|
||||||
|
incenter_reset_inputs(ins);
|
||||||
|
}
|
||||||
|
|
||||||
internal void
|
internal void
|
||||||
incenter_scene_go_to(Incenter_State* ins, u32 index)
|
incenter_scene_go_to(Incenter_State* ins, u32 index)
|
||||||
{
|
{
|
||||||
ins->transition_time = 0;
|
ins->transition_time = 0;
|
||||||
ins->scene_next = index % ins->scenes_cap;
|
ins->scene_next = index % ins->scenes_cap;
|
||||||
ins->scene_mode = Incenter_SceneMode_TransitioningOut;
|
ins->scene_mode = Incenter_SceneMode_TransitioningOut;
|
||||||
|
if (ins->scene_at == Incenter_Scene_WelcomeHome) {
|
||||||
|
incenter_go_to_transitioning_in(ins);
|
||||||
|
}
|
||||||
|
|
||||||
printf("Switching To: %d:%s\n", ins->scene_next, ins->scenes[ins->scene_next].name);
|
printf("Switching To: %d:%s\n", ins->scene_next, ins->scenes[ins->scene_next].name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -58,17 +87,13 @@ incenter_scene_render(App_State* state, Incenter_State* ins)
|
||||||
// Update the transition if necessary
|
// Update the transition if necessary
|
||||||
if (ins->transition_time >= INCENTER_TRANSITION_DURATION) {
|
if (ins->transition_time >= INCENTER_TRANSITION_DURATION) {
|
||||||
if (ins->scene_mode == Incenter_SceneMode_TransitioningOut) {
|
if (ins->scene_mode == Incenter_SceneMode_TransitioningOut) {
|
||||||
ins->transition_time = 0;
|
incenter_go_to_transitioning_in(ins);
|
||||||
ins->scene_mode = Incenter_SceneMode_TransitioningIn;
|
|
||||||
ins->scene_at = ins->scene_next;
|
|
||||||
ins->scene_time = 0;
|
|
||||||
|
|
||||||
// reset inputs
|
|
||||||
ins->input_pct = 0.5f;
|
|
||||||
ins->input_option = 0;
|
|
||||||
ins->input_advance = false;
|
|
||||||
} else {
|
} else {
|
||||||
ins->scene_mode = Incenter_SceneMode_Input;
|
ins->scene_mode = Incenter_SceneMode_Input;
|
||||||
|
if (ins->scene_next == Incenter_Scene_WelcomeHome ||
|
||||||
|
ins->scene_next == Incenter_Scene_AnyoneHome) {
|
||||||
|
ins->scene_mode = Incenter_SceneMode_Passive;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -154,19 +179,31 @@ incenter_init(App_State* state)
|
||||||
v3 start_p = (v3){0, 0, 0};
|
v3 start_p = (v3){0, 0, 0};
|
||||||
|
|
||||||
|
|
||||||
Assembly_Strip* vertical_strip = assembly_add_strip(&state->assemblies, ah, 123);
|
Assembly_Strip* brc = assembly_add_strip(&state->assemblies, ah, 140);
|
||||||
assembly_strip_create_leds(
|
brc->output_kind = OutputData_NetworkSACN;
|
||||||
&state->assemblies,
|
brc->sacn_universe = city_descs[city_black_rock].sacn_universe;
|
||||||
|
// Arctic
|
||||||
|
assembly_strip_append_leds(
|
||||||
|
&state->assemblies,
|
||||||
ah,
|
ah,
|
||||||
vertical_strip,
|
brc,
|
||||||
|
(v3){0, INCENTER_RADIUS, 0},
|
||||||
start_p,
|
start_p,
|
||||||
(v3){0, INCENTER_FEET(-4.5f), 0},
|
90
|
||||||
123
|
);
|
||||||
|
// BRC
|
||||||
|
assembly_strip_append_leds(
|
||||||
|
&state->assemblies,
|
||||||
|
ah,
|
||||||
|
brc,
|
||||||
|
start_p,
|
||||||
|
(v3){0, INCENTER_FEET(-4.5f), 0},
|
||||||
|
50
|
||||||
);
|
);
|
||||||
|
|
||||||
// ADDING PRIMARY CITIES
|
// ADDING PRIMARY CITIES
|
||||||
r32 radius = INCENTER_RADIUS;
|
r32 radius = INCENTER_RADIUS;
|
||||||
for (u32 i = 0; i < city_count; i++)
|
for (u32 i = 1; i < city_count; i++)
|
||||||
{
|
{
|
||||||
Incenter_City_Desc city = city_descs[i];
|
Incenter_City_Desc city = city_descs[i];
|
||||||
if (city.sacn_universe == 0) {
|
if (city.sacn_universe == 0) {
|
||||||
|
@ -180,7 +217,7 @@ incenter_init(App_State* state)
|
||||||
strip->output_kind = OutputData_NetworkSACN;
|
strip->output_kind = OutputData_NetworkSACN;
|
||||||
strip->sacn_universe = city.sacn_universe;
|
strip->sacn_universe = city.sacn_universe;
|
||||||
|
|
||||||
assembly_strip_create_leds(&state->assemblies, ah, strip, end_p, start_p, 88);
|
assembly_strip_append_leds(&state->assemblies, ah, strip, end_p, start_p, 88);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define USING_ON_PLAYA_SECONDARY_CITIES 1
|
#define USING_ON_PLAYA_SECONDARY_CITIES 1
|
||||||
|
@ -320,7 +357,7 @@ incenter_frame(App_State* state)
|
||||||
|
|
||||||
incenter_interface_connection_frame(state, ins);
|
incenter_interface_connection_frame(state, ins);
|
||||||
|
|
||||||
ins->scene_time += state->target_seconds_per_frame * 0.2f;
|
ins->scene_time += state->target_seconds_per_frame * 0.5f;
|
||||||
ins->transition_time += state->target_seconds_per_frame;
|
ins->transition_time += state->target_seconds_per_frame;
|
||||||
incenter_scene_render(state, ins);
|
incenter_scene_render(state, ins);
|
||||||
|
|
||||||
|
|
17
todo.txt
17
todo.txt
|
@ -1,3 +1,20 @@
|
||||||
|
- arctic - what do we want to do?
|
||||||
|
- (waiting) EFAULT error on receiving a message from the interface
|
||||||
|
- FILE IO bugs
|
||||||
|
x Timeout to idle
|
||||||
|
|
||||||
|
- kids love this thing "THATS THE COOLEST"
|
||||||
|
- conversation about "People probably haven't talked about their covid experience yet, this is really good."
|
||||||
|
- "This is the most peaceful I've felt in a long time"
|
||||||
|
- "Where are you from" - "I'm from the one that's full of light"
|
||||||
|
- Rando: "Hey close the door, its way better."
|
||||||
|
- "A whole new world"
|
||||||
|
- "Want to do it with me?" (goes on to correctly explain the piece without us having told her)
|
||||||
|
- "So you're inside the globe, that's why it's inside out, THAT'S SO COOL!"
|
||||||
|
- "So that question was about feeling represented in government." "OH WOW - holy shit brazil!" (chorus)
|
||||||
|
- "Come do the thing!" "Wait, in front of everybody?"
|
||||||
|
- "It's kind of temple-y, with the writing and atmosphere and stuff"
|
||||||
|
|
||||||
|
|
||||||
TODO:
|
TODO:
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue