Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enhancement: Randomize Challenge #22

Open
sigma144 opened this issue Jan 22, 2021 · 6 comments
Open

Enhancement: Randomize Challenge #22

sigma144 opened this issue Jan 22, 2021 · 6 comments
Labels
enhancement New feature or request

Comments

@sigma144
Copy link
Owner

I've made some progress on trying to randomize the Challenge, but there are still issues to be ironed out. Mainly the fact that when the game tries to randomize the panels using the mod's dynamically allocated arrays, it often crashes. Hopefully I'll have this fixed in the next release.

@sigma144 sigma144 added the enhancement New feature or request label Jan 22, 2021
@instr3
Copy link

instr3 commented Jan 23, 2021

That sounds wonderful! Can't wait for the update.

@jbzdarkid
Copy link

I mean, you can just remove the "randomize on power on" attribute from the panels. Then you should be able to do whatever you want.

@sigma144
Copy link
Owner Author

Thanks. I don't see that in the list from Randomizer.h, do you know the offset? If not, I imagine it shouldn't be too hard to find.

@jbzdarkid
Copy link

jbzdarkid commented Feb 16, 2021

/* 920 */
struct __cppobj __declspec(align(8)) Entity_Machine_Panel : Entity
{
  Vector4 path_color;
  Vector4 reflection_path_color;
  Vector4 XXX_deprecated_finished_path_color;
  Vector4 dot_color;
  Vector4 active_color;
  Vector4 background_region_color; // Lines between cells
  Vector4 success_color_a;
  Vector4 success_color_b;
  Vector4 strobe_color_a;
  Vector4 strobe_color_b;
  Vector4 error_color;
  Vector4 video_status_color;
  Vector4 pattern_point_color;
  Vector4 pattern_point_color_a;
  Vector4 pattern_point_color_b;
  Vector4 symbol_a;
  Vector4 symbol_b;
  Vector4 symbol_c;
  Vector4 symbol_d;
  Vector4 symbol_e;
  int push_symbol_colors;
  Vector4 outer_background; // Outside of puzzle color
  int outer_background_mode;
  char *pattern_name;
  float size;
  float extra_back_distance;
  Auto_Array<Traced_Edge> traced_edges;
  char *mesh_name;
  char *backing_texture_name;
  char *off_texture_name;
  char *scanline_texture_name;
  char *override_env_map_name;
  char *success_sound_name;
  char *rattle_sound_name;
  char *audio_prefix;
  float flash_t;
  float flash_t_max;
  int flash_mode;
  int dots_flashing;
  float dot_flash_t;
  float dot_flash_t_max;
  float solved_t;
  float solved_t_target;
  int has_ever_been_solved;
  float don_dt;
  float on_t;
  float on_t_target;
  float gesture_finished_t;
  float gesture_finished_t_target;
  float gesture_finished_time;
  int id_to_power;
  int power_off_on_fail;
  int my_multipanel;
  int my_bridge;
  int my_landing_signal;
  int powered_by;
  int manual_prev_id;
  int manual_next_id;
  float extra_attract_distance;
  unsigned int panel_checksum;
  Vector3 panel_focus_point;
  Vector3 panel_normal;
  int is_cylinder;
  float cylinder_z0;
  float cylinder_z1;
  float cylinder_radius;
  float uv_to_world_scale;
  Eraser_Status eraser_status;
  float pattern_scale;
  float symbol_scale;
  float initial_dot_size;
  int accept_any_hit;
  float ray_shortening;
  int covert;
  float cursor_speed_scale;
  int solvable_from_behind;
  float volume_scale;
  float scintillate_startpoints_on_t;
  float scintillate_startpoints_on_t_target;
  float scintillate_endpoints_on_t;
  float scintillate_endpoints_on_t_target;
  float scintillate_time;
  int scintillate_cycle_count;
  int scintillate_audio_count;
  unsigned int points_occupied_by_pressure_plates;
  int needs_redraw;
  int ignore_occlusion;
  int stashed_giant_floor_shape;
  float extra_emissive;
  float specular_add;
  float specular_power;
  int filtered_env_map;
  int use_env_map;
  float path_width_scale;
  float startpoint_scale;
  float backface_tracing_offset;
  float vignette_intensity;
  float brokenness;
  int num_dots;
  int num_connections;
  float max_broadcast_distance;
  Vector2 *dot_positions;
  int *dot_flags;
  int *dot_connection_a;
  int *dot_connection_b;
  int randomize_on_power_on;
  float *dot_time_tags;
  float *dot_time_tags_interpolated;
  int controlled_by_pressure_plates;
  Auto_Array<Unconstrained_Triangle> unconstrained_triangles;
  int *dot_result_flags;
  unsigned int *decorations;
  unsigned int *decoration_flags;
  Vector4 *decoration_colors;
  int num_decorations;
  int *reflection_data;
  int grid_size_x;
  int grid_size_y;
  int style_flags;
  int was_edited;
  int pattern_updated;
  int sequence_len;
  const int *sequence;
  int dot_sequence_len;
  const int *dot_sequence;
  int dot_sequence_len_reflection;
  const int *dot_sequence_reflection;
  int color_cycle_index;
  Auto_Array<Traced_Edge> auxiliary_traced_edges;
  int num_colored_regions;
  Colored_Region *colored_regions;
  Panel_Target *panel_target;
  Texture_Map *backing_texture;
  Texture_Map *off_texture;
  Texture_Map *scanline_texture;
  Texture_Map *override_env_map;
  Texture_Map *specular_texture;
  Entity *cached_env_map_probe;
  int max_dots;
  int max_connections;
  Auto_Array<float> powered_subpanel_regions;
  bool needs_junction_update;
};

@sigma144
Copy link
Owner Author

Thanks, that helps a lot!

@jbzdarkid
Copy link

jbzdarkid commented Apr 16, 2021

/* 719 */
struct __cppobj __declspec(align(8)) Entity : Portable
{
  Entity_Manager *entity_manager;
  int entity_flags;
  Vector3 position;
  float scale;
  Quaternion orientation;
  float bounding_radius;
  Vector3 bounding_center;
  int group_id;
  char *entity_name;
  Mesh *mesh;
  Triangle_Mesh *source_mesh;
  Lightmap_Table *lightmap_table;
  Mesh_Animator *animator;
  char *mount_bone_name;
  int mount_parent_id;
  Vector3 mount_position;
  Quaternion mount_orientation;
  float mount_scale;
  __int16 mount_depth;
  __int16 mount_bone_index;
  int cluster_id;
  int runtime_only_flags;
  int entity_tree_node_idx;
  float lod_distance;
  unsigned int display_id;
};
/* 611 */
struct Portable
{
  PortableVtbl *vfptr;
  Portable_Type *portable_type;
  int portable_id;
  unsigned __int16 portable_flags;
  unsigned __int16 revision_number;
};

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants