#include<stdio.h>
#include<string.h>
#include<windows.h>

#include"context.h"
#include"day.h"

// プロトタイプ宣言
void ChangeState(STATE* state);

// コンテキスト
static S_CONTEXT context;

// 時間
static unsigned int hour = 0;

// メイン処理
int main(){

    // 初期化
    memset(&context, 0x00, sizeof(context));
    context.state = GetDayInstans();
    context.ChangeState = ChangeState;
    hour = 0;

    printf("start\n");

    // 処理
    while (1) {
        // モードの処理
        context.state->SetTime(&context, hour);
 
        // 挨拶をする (状態の処理)
        context.state->Greeting();

        // 時間を更新する
        hour++;
        if (hour > 24) {
            hour = 0;
        }
        Sleep(500);
    }
    return 0;
}

// 状態変更
void ChangeState(STATE* state){
    printf("状態が変更された\n");
    context.state = state;

    // モードが変わったら初期化する
    context.state->SetTime(&context, hour);
}

