123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425 |
- ************************************************
- **** READ KEYS ****
- ************************************************
- Read_Keys
- * I really dont care about this code
- bsr get_pressed_key
- cmp.b #'1',d0
- blt.s not_interested
- cmp.b #'3',d0
- bgt.s not_interested
- bsr Change_Edit_Mode
- rts
- not_interested
- cmp.b #'Q',d0
- beq quit_editor
- cmp.b #' ',d0
- beq pick_under_cursor
- cmp.b #'f',d0
- beq toggle_fullscreen
- cmp.b #'-',d0
- beq decrease_mouse_sense
- cmp.b #'=',d0
- beq increase_mouse_sense
- cmp.w #1,edit_mode
- bne no_key_pressed
- cmp.b #'C',d0
- beq select_copy_mode
- cmp.b #'P',d0
- beq select_paste_mode
- cmp.b #'X',d0
- beq select_cut_mode
- cmp.b #'F',d0
- beq select_fill_mode
- cmp.b #'s',d0
- beq select_show_all
- cmp.b #'j',d0
- beq flip_map_pages
- cmp.b #'p',d0
- beq pick_delete_block
- cmp.b #'g',d0
- beq change_grid_mode
- cmp.b #'u',d0
- beq select_undo
- cmp.b #'z',d0
- beq scroll_block_line_up
- cmp.b #'a',d0
- beq scroll_block_line_down
- cmp.b #CURSOR_UP,d0
- beq move_cursor_up
- cmp.b #CURSOR_DOWN,d0
- beq move_cursor_down
- cmp.b #CURSOR_LEFT,d0
- beq move_cursor_left
- cmp.b #CURSOR_RIGHT,d0
- beq move_cursor_right
- cmp.b #F1_KEY,d0
- beq select_key_buffer
- cmp.b #F2_KEY,d0
- beq select_key_buffer
- cmp.b #F3_KEY,d0
- beq select_key_buffer
- cmp.b #F4_KEY,d0
- beq select_key_buffer
- cmp.b #F5_KEY,d0
- beq select_key_buffer
- cmp.b #F6_KEY,d0
- beq select_key_buffer
- cmp.b #F7_KEY,d0
- beq select_key_buffer
- cmp.b #F8_KEY,d0
- beq select_key_buffer
- not_num_key
- cmp.b #',',d0 ;use < and > to select pages
- beq.s down_page
- cmp.b #'.',d0
- bne.s no_key_pressed ;end of chain
- cmp.w #3,current_page ;up page
- beq.s no_key_pressed
- addq.w #1,current_page
- bra.s key_change_page
- down_page
- tst.w current_page
- beq.s no_key_pressed
- subq.w #1,current_page
- key_change_page
- move.w current_page,d0
- move.l #picture_pages,a0
- ext.l d0
- asl.w #2,d0
- move.l (a0,d0.w),page_pointer
- bsr display_blocks_on_screen
- no_key_pressed
- rts
- select_paste_mode
- jsr paste_block
- rts
- select_cut_mode
- jsr cut_block
- rts
- select_copy_mode
- jsr copy_block
- rts
- select_fill_mode
- jsr fill_map
- rts
- select_show_all
- jsr show_whole_map
- rts
- decrease_mouse_sense
- subq.w #5,sensativity
- cmp.w #10,sensativity
- bge.s dont_dec_mouse
- move.w #10,sensativity
- dont_dec_mouse
- rts
- increase_mouse_sense
- addq.w #5,sensativity
- cmp.w #100,sensativity
- ble.s dont_inc_mouse
- move.w #100,sensativity
- dont_inc_mouse
- rts
- select_undo
- tst.w undo_on
- beq.s dont_call_undo
- jsr undo
- dont_call_undo
- rts
- pick_under_cursor
- tst.w edit_data_flag
- beq.s are_we_in_map_mode
- tst.w last_alien_displayed
- beq.s cannot_pick_alien
- clr.w d3
- jsr Display_Alien_String
- move.w #1,d3
- move.w last_alien_displayed,current_alien_number
- jsr Display_Alien_String
- cannot_pick_alien
- rts
- are_we_in_map_mode
- cmp.w #1,edit_mode
- bne.s not_in_em_mode
- bsr Remove_Selected_Block_Num
-
- move.l current_map_ptr,a1
- move.l map_mem(a1),a0
- move.w map_datasize(a1),d5
- bsr Convert_Mouse_And_Store
- divu map_block_size(a1),d0
- divu map_block_size(a1),d1
- add.w map_x_position,d0
- add.w map_y_position,d1
- mulu map_xsize(a1),d1
- add.w d0,d1
- asl.w d5,d1
- moveq #0,d0
- tst d5
- beq.s extract_byte_map
- move.w (a0,d1),d0
- bra.s update_block_details
- extract_byte_map
- move.b (a0,d1),d0
- update_block_details
- move.w d0,current_block
- bsr convert_block_number_to_memory
- bsr position_box_sprite2
- bsr Display_Selected_Block_Num
- not_in_em_mode
- rts
- toggle_fullscreen
- tst.w edit_data_flag ;this is so naff - why did I have a separate flag???
- bne.s change_full_mode
- tst.w edit_mode
- bne.s change_full_mode
- rts
- change_full_mode
- bsr sync ;ensure not near bottom
- tst.w fullscreen_mode
- beq set_fullscreen
- clr.w fullscreen_mode
- move.w #BUTTON_WINDOW_OFFSET,max_screen_pos
- move.w #BUTTON_WINDOW_OFFSET,screen_custom_y
- tst.w edit_data_flag
- beq.s not_in_edit_mode_ok
- move.w #BUTTON_WINDOW_OFFSET,map_screen_custom_y
- move.w #BUTTON_WINDOW_OFFSET,max_map_screen_pos
- bra.s replace_cop
- not_in_edit_mode_ok
- move.w #BUTTON_WINDOW_OFFSET-32,map_screen_custom_y
- move.w #BUTTON_WINDOW_OFFSET-32,max_map_screen_pos
- replace_cop
- move.w #14-1,d2
- move.l #full_screen,a0
- remove_end_cop
- move.l #$01fe0000,(a0)+
- dbra d2,remove_end_cop
- cmp.w #1,edit_mode
- bne.s remove_not_in_map_mode
- move.w #1,show_box2
- bsr position_box_sprite2
- bsr display_map_on_screen
- bsr display_blocks_on_screen
- remove_not_in_map_mode
- tst edit_data_flag
- beq.s remove_not_in_edit_data_mode
- bsr display_map_on_screen
- jsr display_alien_numbers
- remove_not_in_edit_data_mode
- rts
- set_fullscreen
- move.w #1,fullscreen_mode
- move.w #255,max_screen_pos
- move.w #255,screen_custom_y
- move.w #255,map_screen_custom_y
- move.w #256,max_map_screen_pos
- move.l #full_screen,a0
- move.l #end_copper,a1
- move.w #14-1,d2
- copy_end_cop
- move.l (a1)+,(a0)+
- dbra d2,copy_end_cop
-
- cmp.w #2,edit_mode
- bne.s not_in_graphics_mode
- move.l page_pointer,a0
- tst.w screen_y_pos(a0)
- beq.s not_in_graphics_mode
- clr.w screen_y_pos(a0)
- bsr display_graphic_page
- not_in_graphics_mode
- cmp.w #1,edit_mode
- bne.s not_in_map_mode
- clr.w show_box2
- bsr position_box_sprite2
- bsr display_map_on_screen
- not_in_map_mode
- tst.w edit_data_flag
- beq.s not_in_edit_data_mode
- bsr display_map_on_screen
- not_in_edit_data_mode
- rts
- quit_editor
- bsr kill_system
- rts
- change_grid_mode
- bchg.b #0,grid_on+1
- bsr display_blocks_on_screen
- rts
- flip_map_pages
- move.l current_map_ptr,a0
- move.w map_y_position,Map_Y_Val(a0)
- move.w map_x_position,Map_X_Val(a0)
-
- cmp.l #map_details,current_map_ptr
- beq.s Flip_To_Second_Map
- move.l #map_details,current_map_ptr
- clr.w current_map
- bra.s Update_For_New_Map
- Flip_To_Second_Map
- move.l #map_details2,current_map_ptr
- move.w #1,current_map
- Update_For_New_Map
- move.l current_map_ptr,a0
- move.w Map_Y_Val(a0),map_y_position
- move.w Map_X_Val(a0),map_x_position
- bsr Calculate_Blocks_In_One_Page
- bsr display_map_on_screen
- bsr Display_X_Y
- rts
- Change_Edit_Mode
- *determine mode in
- clr.w d1
- tst edit_mode
- beq.s not_in_map_or_graph
- cmp.w #2,edit_mode
- beq.s go_to_new_mode
- moveq #1,d1
- bra.s go_to_new_mode
- not_in_map_or_graph
- tst edit_data_flag
- beq not_in_any_mode
- move.w #2,d1
- go_to_new_mode
- *determine mode to change to
- ext.w d0
- sub.w #'1',d0
- cmp.w d0,d1
- beq.s not_in_any_mode ;dont bother to change
-
- tst d0
- beq.s go_to_graphic_mode
- cmp.w #1,d0
- beq.s go_to_edit_map_mode
- *go to data
- cmp.w #1,d1
- beq.s go_from_map2
- *go from graphic
- bsr remove_graphic_buttons
- bra.s go_to_data
- go_from_map2
- bsr remove_edit_buttons
- go_to_data
- jsr delete_buttons
- jsr draw_buttons
- jsr bring_up_data_function
- rts
- go_to_graphic_mode
- cmp.w #1,d1
- beq.s go_from_map
- *go from edit_data
- jsr exit_data_function
- bra.s bring_up_gr
- go_from_map
- bsr remove_edit_buttons
- bring_up_gr
- jsr delete_buttons
- jsr draw_buttons
- bsr display_graphic_buttons
- rts
-
- go_to_edit_map_mode
- tst d1
- beq.s go_from_graph
- *go from data
- jsr exit_data_function
- bra.s bring_up_map
- go_from_graph
- bsr remove_graphic_buttons
- bring_up_map
- jsr delete_buttons
- jsr draw_buttons
- bsr display_edit_buttons
- rts
-
- not_in_any_mode
- rts
-
- pick_delete_block
- move.l current_block_mem,delete_block_mem
- move.w current_block,d1
- move.w d1,delete_block
- move.l #Project_Del_Block,d0
- jsr Set_Project_Value
- rts
- delete_block
- dc.w 0
- delete_block_mem
- dc.l 0
-
- scroll_block_line_up
- bsr change_blocks_position_up
- rts
- scroll_block_line_down
- bsr change_blocks_position_down
- rts
-
-
- select_key_buffer
- add.w #16,d0
- neg.w d0
- move.w d0,-(sp)
- jsr remove_current_buff_name
- move.w (sp)+,d0
- move.w d0,current_buffer
- jsr calculate_buffer_mem
- jsr display_current_buff_name
- rts
-
- move_cursor_up
- bsr Remove_Selected_Block_Num
- move.l #main_screen_struct,a0
- moveq #0,d0
- move.w screen_x_size(a0),d0
- move.l current_map_ptr,a0
- divu map_block_size(a0),d0
-
- sub.w d0,current_block
- bsr convert_block_number_to_memory
- bsr position_box_sprite2
- bsr Display_Selected_Block_Num
- rts
- move_cursor_down
- bsr Remove_Selected_Block_Num
- move.l #main_screen_struct,a0
- moveq #0,d0
- move.w screen_x_size(a0),d0
- move.l current_map_ptr,a0
- divu map_block_size(a0),d0
-
- add.w d0,current_block
- bsr convert_block_number_to_memory
- bsr position_box_sprite2
- bsr Display_Selected_Block_Num
- rts
-
- move_cursor_left
- bsr Remove_Selected_Block_Num
- subq.w #1,current_block
- bsr convert_block_number_to_memory
- bsr position_box_sprite2
- bsr Display_Selected_Block_Num
- rts
-
- move_cursor_right
- bsr Remove_Selected_Block_Num
- addq.w #1,current_block
- bsr convert_block_number_to_memory
- bsr position_box_sprite2
- bsr Display_Selected_Block_Num
- rts
- fullscreen_mode dc.w 0
- max_screen_pos dc.w BUTTON_WINDOW_OFFSET
- max_map_screen_pos dc.w BUTTON_WINDOW_OFFSET-32
|