First of all, I want to thank you very much for the update, im enjoying a lot your engine, I made some modifications that I believe that it can add value to your project.
For example, when you have multiple conversations with several characters, it adds a powerful visual effect to shadow the characters that are not talking without having to use the script character_destroy(). and having to create them again with character_create().
I added these 2 scripts
function character_apply_shadow(char, shadow_color) {
var char_id = ds_map_find_value(global.characters, char);
char_id.shadow_color = shadow_color;
char_id.shadow_active = true;
}
function character_remove_shadow(char) {
var char_id = ds_map_find_value(global.characters, char);
char_id.shadow_active = false;
}
obj_character step event modifications (on the line //effects n stuff )
if sprite_index != noone{ // effects n' stuff
// Apply shadow effect if active
if (shadow_active) {
image_blend = shadow_color;
} else {
image_blend = c_white;
}
And this is a example how i call the shadowing
if ev(){
character_hop("Manny Ae", hop_medium, false)
character_hop("Anny Mae", hop_medium, false)
character_sprite("Anny Mae", spr_annymae_shock)
textbox_create("Anny Mae", "Wow!", "My similar looking doppelganger Manny Ae?")
}
if ev(){
character_apply_shadow("Anny Mae", make_color_rgb(50, 50, 50));
wait_time(0.25)
}
if ev(){
textbox_create("Persimmon Factory", "Drawing one of 'em is hard enough, alright?")
}
if ev(){
textbox_create("Manny Ae", "Hi everyone!")
}
if ev(){
character_apply_shadow("Manny Ae", make_color_rgb(50, 50, 50));
character_remove_shadow("Anny Mae");
wait_time(0.25)
}