Improved responsiveness
This commit is contained in:
		@@ -42,7 +42,6 @@ void conversationFadeUpdate() {
 | 
			
		||||
  // shade.
 | 
			
		||||
  if(diff == FADE_STEP) {
 | 
			
		||||
    // First step
 | 
			
		||||
    wait_vbl_done();
 | 
			
		||||
    BGP_REG = (
 | 
			
		||||
      TIME_FUTURE_TYPE == TIME_FUTURE_TYPE_FADE_TO_BLACK ? COMMON_SHADE_DARK :
 | 
			
		||||
      TIME_FUTURE_TYPE == TIME_FUTURE_TYPE_FADE_TO_WHITE ? COMMON_SHADE_BRIGHT :
 | 
			
		||||
@@ -51,7 +50,6 @@ void conversationFadeUpdate() {
 | 
			
		||||
    );
 | 
			
		||||
  } else if(diff == FADE_STEP * 2) {
 | 
			
		||||
    // Second step
 | 
			
		||||
    wait_vbl_done();
 | 
			
		||||
    BGP_REG = (
 | 
			
		||||
      TIME_FUTURE_TYPE == TIME_FUTURE_TYPE_FADE_TO_BLACK ? COMMON_SHADE_DARKER :
 | 
			
		||||
      TIME_FUTURE_TYPE == TIME_FUTURE_TYPE_FADE_TO_WHITE ? COMMON_SHADE_BRIGHTER :
 | 
			
		||||
@@ -60,7 +58,6 @@ void conversationFadeUpdate() {
 | 
			
		||||
    );
 | 
			
		||||
  } else if(diff == FADE_STEP * 3) {
 | 
			
		||||
    // Third step
 | 
			
		||||
    wait_vbl_done();
 | 
			
		||||
    BGP_REG = (
 | 
			
		||||
      TIME_FUTURE_TYPE == TIME_FUTURE_TYPE_FADE_TO_BLACK ? COMMON_SHADE_BLACK :
 | 
			
		||||
      TIME_FUTURE_TYPE == TIME_FUTURE_TYPE_FADE_TO_WHITE ? COMMON_SHADE_WHITE :
 | 
			
		||||
 
 | 
			
		||||
@@ -21,7 +21,6 @@ inline void conversationTextboxInit() {
 | 
			
		||||
  TEXTBOX_STATE = 0;
 | 
			
		||||
 | 
			
		||||
  // Setup window data
 | 
			
		||||
  wait_vbl_done();
 | 
			
		||||
  move_win(7, SCREENHEIGHT - (TEXTBOX_HEIGHT_IN_TILES * 8));
 | 
			
		||||
  set_win_data(FONT_DATA_POSITION, FONT_IMAGE_TILES, FONT_IMAGE);
 | 
			
		||||
  set_win_data(BORDER_DATA_POSITION, BORDER_IMAGE_TILES, BORDER_IMAGE);
 | 
			
		||||
@@ -56,7 +55,6 @@ void conversationTextboxSetText(char *text) {
 | 
			
		||||
  // Begin by filling the textbox text chars with whitespace to begin.
 | 
			
		||||
  // TODO: I'm pretty sure I can move this lower and optimize.
 | 
			
		||||
  for(i = 0; i < TEXTBOX_SCROLL_ROWS_MAX * TEXTBOX_CHARS_PER_ROW; i++) {
 | 
			
		||||
    break;
 | 
			
		||||
    TEXTBOX_TEXTS[i] = ' ';
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
@@ -124,7 +122,6 @@ inline void textboxFillBlank() {
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  wait_vbl_done();
 | 
			
		||||
  set_win_tiles(
 | 
			
		||||
    0x01, 0x01,
 | 
			
		||||
    TEXTBOX_WIDTH_IN_TILES - 0x02, TEXTBOX_HEIGHT_IN_TILES - 0x02,
 | 
			
		||||
@@ -147,7 +144,6 @@ inline void conversationTextboxUpdate() {
 | 
			
		||||
      // First, lets figure out if there's any more text to reveal or not.
 | 
			
		||||
      if((TEXTBOX_ROW_COUNT - TEXTBOX_ROW_CURRENT) < TEXTBOX_TILES_ROWS) {
 | 
			
		||||
        TEXTBOX_STATE &= ~TEXTBOX_STATE_VISIBLE;
 | 
			
		||||
        wait_vbl_done();
 | 
			
		||||
        HIDE_WIN;
 | 
			
		||||
        conversationQueueNext();
 | 
			
		||||
        return;
 | 
			
		||||
@@ -168,10 +164,8 @@ inline void conversationTextboxUpdate() {
 | 
			
		||||
  if(TEXTBOX_SCROLL == TEXTBOX_CHARS_MAX) {
 | 
			
		||||
    TEXTBOX_STATE |= TEXTBOX_STATE_SCROLLED;
 | 
			
		||||
  } else {
 | 
			
		||||
    tiles[0] = c - 33 + FONT_DATA_POSITION;
 | 
			
		||||
    // tiles[0] = c + FONT_DATA_POSITION;
 | 
			
		||||
    tiles[0] = c - TEXTBOX_FONT_START + FONT_DATA_POSITION;
 | 
			
		||||
 | 
			
		||||
    wait_vbl_done();
 | 
			
		||||
    set_win_tiles(
 | 
			
		||||
      0x01 + (TEXTBOX_SCROLL % TEXTBOX_CHARS_PER_ROW),
 | 
			
		||||
      0x01 + (TEXTBOX_SCROLL / TEXTBOX_CHARS_PER_ROW),
 | 
			
		||||
 
 | 
			
		||||
@@ -43,6 +43,8 @@
 | 
			
		||||
 | 
			
		||||
#define TEXTBOX_SCROLL_ROWS_MAX 14
 | 
			
		||||
 | 
			
		||||
#define TEXTBOX_FONT_START 33
 | 
			
		||||
 | 
			
		||||
extern char TEXTBOX_TEXTS[TEXTBOX_SCROLL_ROWS_MAX * TEXTBOX_CHARS_PER_ROW];
 | 
			
		||||
extern uint8_t TEXTBOX_ROW_COUNT;
 | 
			
		||||
extern uint8_t TEXTBOX_ROW_CURRENT;
 | 
			
		||||
 
 | 
			
		||||
@@ -171,13 +171,14 @@ void main() {
 | 
			
		||||
  // Begin the loop
 | 
			
		||||
  while(1) {
 | 
			
		||||
    // Perform non-graphical code updates
 | 
			
		||||
 | 
			
		||||
    // Tick time.
 | 
			
		||||
    timeUpdate();
 | 
			
		||||
    wait_vbl_done();
 | 
			
		||||
 | 
			
		||||
    // Update the input state
 | 
			
		||||
    INPUT_STATE = joypad();
 | 
			
		||||
 | 
			
		||||
    // Tick time.
 | 
			
		||||
    timeUpdate();
 | 
			
		||||
 | 
			
		||||
    // Update conversation pause effect
 | 
			
		||||
    conversationPauseUpdate();
 | 
			
		||||
 | 
			
		||||
@@ -186,7 +187,5 @@ void main() {
 | 
			
		||||
 | 
			
		||||
    // Update conversation fade effect
 | 
			
		||||
    conversationFadeUpdate();
 | 
			
		||||
 | 
			
		||||
    // mainDebugDraw():
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user