Great simplification of Main/Spare page flipping
This commit is contained in:
parent
353b494617
commit
5ab93eb7fd
@ -1550,64 +1550,24 @@ void Button_Skins(void)
|
|||||||
void Button_Page(void)
|
void Button_Page(void)
|
||||||
{
|
{
|
||||||
byte factor_index;
|
byte factor_index;
|
||||||
char Temp_buffer[256];
|
T_Document temp_doc;
|
||||||
|
|
||||||
Hide_cursor();
|
Hide_cursor();
|
||||||
|
|
||||||
if (Config.Sync_views)
|
if (Config.Sync_views)
|
||||||
Copy_view_to_spare();
|
Copy_view_to_spare();
|
||||||
|
|
||||||
// On dégrossit le travail avec les infos des listes de pages
|
// First update the page descriptors before swapping them
|
||||||
Exchange_main_and_spare();
|
Upload_infos_page(&Main);
|
||||||
|
Upload_infos_page(&Spare);
|
||||||
|
|
||||||
// Tilemap info
|
// SWAP
|
||||||
Swap_tilemap();
|
memcpy(&temp_doc, &Main, sizeof(T_Document));
|
||||||
|
memcpy(&Main, &Spare, sizeof(T_Document));
|
||||||
// On fait le reste du travail "à la main":
|
memcpy(&Spare, &temp_doc, sizeof(T_Document));
|
||||||
// TODO
|
|
||||||
SWAP_PBYTES(Main.visible_image.Image,Spare.visible_image.Image)
|
|
||||||
SWAP_WORDS (Main.visible_image.Width,Spare.visible_image.Width)
|
|
||||||
SWAP_WORDS (Main.visible_image.Height,Spare.visible_image.Height)
|
|
||||||
SWAP_SHORTS(Main.offset_X,Spare.offset_X)
|
|
||||||
SWAP_SHORTS(Main.offset_Y,Spare.offset_Y)
|
|
||||||
SWAP_SHORTS(Main.separator_position,Spare.separator_position)
|
|
||||||
SWAP_SHORTS(Main.X_zoom,Spare.X_zoom)
|
|
||||||
SWAP_FLOATS(Main.separator_proportion,Spare.separator_proportion)
|
|
||||||
SWAP_BYTES (Main.magnifier_mode,Spare.magnifier_mode)
|
|
||||||
|
|
||||||
Pixel_preview=(Main.magnifier_mode)?Pixel_preview_magnifier:Pixel_preview_normal;
|
Pixel_preview=(Main.magnifier_mode)?Pixel_preview_magnifier:Pixel_preview_normal;
|
||||||
|
|
||||||
SWAP_WORDS (Main.magnifier_factor,Spare.magnifier_factor)
|
|
||||||
SWAP_WORDS (Main.magnifier_height,Spare.magnifier_height)
|
|
||||||
SWAP_WORDS (Main.magnifier_width,Spare.magnifier_width)
|
|
||||||
SWAP_SHORTS(Main.magnifier_offset_X,Spare.magnifier_offset_X)
|
|
||||||
SWAP_SHORTS(Main.magnifier_offset_Y,Spare.magnifier_offset_Y)
|
|
||||||
// Swap du booléen "Image modifiée"
|
|
||||||
SWAP_BYTES (Main.image_is_modified,Spare.image_is_modified)
|
|
||||||
|
|
||||||
// Swap fileselector data
|
|
||||||
SWAP_BYTES (Main.selector.Format_filter,Spare.selector.Format_filter)
|
|
||||||
SWAP_WORDS (Main.selector.Position,Spare.selector.Position)
|
|
||||||
SWAP_WORDS (Main.selector.Offset,Spare.selector.Offset)
|
|
||||||
strcpy(Temp_buffer ,Spare.selector.Directory);
|
|
||||||
strcpy(Spare.selector.Directory,Main.selector.Directory);
|
|
||||||
strcpy(Main.selector.Directory,Temp_buffer );
|
|
||||||
|
|
||||||
|
|
||||||
SWAP_BYTES (Main.current_layer,Spare.current_layer)
|
|
||||||
SWAP_DWORDS(Main.layers_visible,Spare.layers_visible)
|
|
||||||
SWAP_DWORDS(Main.layers_visible_backup,Spare.layers_visible_backup)
|
|
||||||
|
|
||||||
SWAP_DWORDS(Main.safety_number,Spare.safety_number)
|
|
||||||
SWAP_DWORDS(Main.edits_since_safety_backup,Spare.edits_since_safety_backup)
|
|
||||||
SWAP_BYTES(Main.safety_backup_prefix,Spare.safety_backup_prefix)
|
|
||||||
{
|
|
||||||
Uint32 a;
|
|
||||||
a=Main.time_of_safety_backup;
|
|
||||||
Main.time_of_safety_backup=Spare.time_of_safety_backup;
|
|
||||||
Spare.time_of_safety_backup=a;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Redraw_layered_image();
|
//Redraw_layered_image();
|
||||||
// replaced by
|
// replaced by
|
||||||
Update_buffers(Main.image_width, Main.image_height);
|
Update_buffers(Main.image_width, Main.image_height);
|
||||||
|
|||||||
32
src/pages.c
32
src/pages.c
@ -1275,38 +1275,6 @@ void Free_current_page(void)
|
|||||||
End_of_modification();
|
End_of_modification();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Exchange_main_and_spare(void)
|
|
||||||
{
|
|
||||||
T_List_of_pages * temp_list;
|
|
||||||
|
|
||||||
// On commence par mettre à jour dans les descripteurs les infos sur les
|
|
||||||
// pages qu'on s'apprête à échanger, pour qu'on se retrouve pas avec de
|
|
||||||
// vieilles valeurs qui datent de mathuzalem.
|
|
||||||
Upload_infos_page(&Main);
|
|
||||||
Upload_infos_page(&Spare);
|
|
||||||
|
|
||||||
// On inverse les listes de pages
|
|
||||||
//TODO
|
|
||||||
temp_list=Main.backups;
|
|
||||||
Main.backups=Spare.backups;
|
|
||||||
Spare.backups=temp_list;
|
|
||||||
|
|
||||||
// On extrait ensuite les infos sur les nouvelles pages courante, brouillon
|
|
||||||
// et backup.
|
|
||||||
|
|
||||||
/* SECTION GROS CACA PROUT PROUT */
|
|
||||||
// Auparavant on ruse en mettant déjà à jour les dimensions de la
|
|
||||||
// nouvelle page courante. Si on ne le fait pas, le "Download" va détecter
|
|
||||||
// un changement de dimensions et va bêtement sortir du mode loupe, alors
|
|
||||||
// que lors d'un changement de page, on veut bien conserver l'état du mode
|
|
||||||
// loupe du brouillon.
|
|
||||||
Main.image_width=Main.backups->Pages->Width;
|
|
||||||
Main.image_height=Main.backups->Pages->Height;
|
|
||||||
|
|
||||||
Download_infos_page_main(Main.backups->Pages);
|
|
||||||
Download_infos_page_spare(Spare.backups->Pages);
|
|
||||||
}
|
|
||||||
|
|
||||||
void End_of_modification(void)
|
void End_of_modification(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|||||||
@ -115,7 +115,6 @@ void Backup_layers(int layer);
|
|||||||
void Undo(void);
|
void Undo(void);
|
||||||
void Redo(void);
|
void Redo(void);
|
||||||
void Free_current_page(void); // 'Kill' button
|
void Free_current_page(void); // 'Kill' button
|
||||||
void Exchange_main_and_spare(void);
|
|
||||||
void End_of_modification(void);
|
void End_of_modification(void);
|
||||||
|
|
||||||
void Update_depth_buffer(void);
|
void Update_depth_buffer(void);
|
||||||
|
|||||||
17
src/tiles.c
17
src/tiles.c
@ -362,23 +362,6 @@ void Tilemap_update(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
///
|
|
||||||
/// This exchanges the tilemap settings of the main and spare, it should
|
|
||||||
/// be called when swapping pages.
|
|
||||||
void Swap_tilemap(void)
|
|
||||||
{
|
|
||||||
//TODO
|
|
||||||
SWAP_BYTES(Main.tilemap_mode, Spare.tilemap_mode)
|
|
||||||
{
|
|
||||||
T_Tile * a;
|
|
||||||
a=Main.tilemap;
|
|
||||||
Main.tilemap=Spare.tilemap;
|
|
||||||
Spare.tilemap=a;
|
|
||||||
}
|
|
||||||
SWAP_SHORTS(Main.tilemap_width, Spare.tilemap_width)
|
|
||||||
SWAP_SHORTS(Main.tilemap_height, Spare.tilemap_height)
|
|
||||||
}
|
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Clears all tilemap data and settings
|
/// Clears all tilemap data and settings
|
||||||
/// Safe to call again.
|
/// Safe to call again.
|
||||||
|
|||||||
@ -32,11 +32,6 @@ void Tilemap_update(void);
|
|||||||
/// similar tiles of the layer, visible on the screen or not.
|
/// similar tiles of the layer, visible on the screen or not.
|
||||||
void Tilemap_draw(word x, word y, byte color);
|
void Tilemap_draw(word x, word y, byte color);
|
||||||
|
|
||||||
///
|
|
||||||
/// This exchanges the tilemap settings of the main and spare, it should
|
|
||||||
/// be called when swapping pages.
|
|
||||||
void Swap_tilemap(void);
|
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Clears all tilemap data and settings
|
/// Clears all tilemap data and settings
|
||||||
/// Safe to call again.
|
/// Safe to call again.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user