From 3da2a7a7c23a48d4571d6347906eaf86cc62be86 Mon Sep 17 00:00:00 2001 From: schmelczerandras Date: Mon, 20 Apr 2020 17:33:58 +0200 Subject: [PATCH] Minor fixes --- ad_astra/AdAstra/src/driver/display/display.h | 3 +++ ad_astra/AdAstra/src/driver/infra/infra.h | 3 ++- ad_astra/AdAstra/src/driver/sleep/sleep.h | 3 +++ ad_astra/AdAstra/src/mediator/mediator.c | 6 +++--- ad_astra/AdAstra/src/objects/types/spaceship/spaceship.c | 7 +++++-- 5 files changed, 16 insertions(+), 6 deletions(-) diff --git a/ad_astra/AdAstra/src/driver/display/display.h b/ad_astra/AdAstra/src/driver/display/display.h index 913ade8..017fbf1 100644 --- a/ad_astra/AdAstra/src/driver/display/display.h +++ b/ad_astra/AdAstra/src/driver/display/display.h @@ -42,6 +42,9 @@ void setDisplayContrast(uint8_t value); // Clear buffer and wasIntersection bit void startIntersectionTest(); +// Make the display go to / return from sleep +void turnDisplayOnOff(bool shouldBeOn); + // Return wasIntersection bit bool endIntersectionTest(); diff --git a/ad_astra/AdAstra/src/driver/infra/infra.h b/ad_astra/AdAstra/src/driver/infra/infra.h index 167152f..fa20fb4 100644 --- a/ad_astra/AdAstra/src/driver/infra/infra.h +++ b/ad_astra/AdAstra/src/driver/infra/infra.h @@ -14,10 +14,11 @@ #define REPEAT_CODE 1 typedef void (*OnCommandReceived)(uint8_t); +typedef void (*OnReceiveStarted)(); // Initialize infra and call onCommandReceived with every received byte // Call onCommandReceived with the argument REPEAT_CODE if a repeat code // has been received. -void initializeInfra(OnCommandReceived onCommandReceived); +void initializeInfra(OnCommandReceived onCommandReceived, OnReceiveStarted onReceiveStarted); #endif diff --git a/ad_astra/AdAstra/src/driver/sleep/sleep.h b/ad_astra/AdAstra/src/driver/sleep/sleep.h index e31d118..15a1068 100644 --- a/ad_astra/AdAstra/src/driver/sleep/sleep.h +++ b/ad_astra/AdAstra/src/driver/sleep/sleep.h @@ -7,6 +7,9 @@ // FrameFunction gets previousFrameTime (in milliseconds) as argument typedef bool (*FrameFunction)(uint8_t); +// Shut down the machine +void powerOff(); + // Call function every frameLengthInMilliseconds while it returns true void startFrameLoop(FrameFunction function, uint8_t frameLengthInMilliseconds); diff --git a/ad_astra/AdAstra/src/mediator/mediator.c b/ad_astra/AdAstra/src/mediator/mediator.c index 269487c..0b1e7e3 100644 --- a/ad_astra/AdAstra/src/mediator/mediator.c +++ b/ad_astra/AdAstra/src/mediator/mediator.c @@ -62,9 +62,9 @@ void handleOn() { static bool frameFunction(uint8_t previousFrameTime) { - if (state.isSleeping) { + /*if (state.isSleeping) { powerOff(); - } else { + } else {*/ disableWritingEEPROM(); tickObjects(previousFrameTime); handleCommands(); @@ -74,7 +74,7 @@ static bool frameFunction(uint8_t previousFrameTime) { enableWritingEEPROM(); saveGame(); return handleDeathAnimation(); - } + //} return true; } diff --git a/ad_astra/AdAstra/src/objects/types/spaceship/spaceship.c b/ad_astra/AdAstra/src/objects/types/spaceship/spaceship.c index 8ec1b8f..bfb0549 100644 --- a/ad_astra/AdAstra/src/objects/types/spaceship/spaceship.c +++ b/ad_astra/AdAstra/src/objects/types/spaceship/spaceship.c @@ -134,7 +134,7 @@ Action getPossibleActionFromSpaceship(Object* astronaut) { return noAction; } -void tick(Object* spaceship, uint8_t previousFrameTime) { +void tick(Object* spaceship, __attribute__((unused)) uint8_t previousFrameTime) { flickerState = !flickerState; if (spaceship->as.spaceship.healthLoss >= MAX_HEALTH) { spaceship->as.spaceship.healthLoss++; @@ -191,7 +191,10 @@ static inline void drawExhaust(Rectangle compositingWindow) { static inline void drawGlitches() { for (uint8_t i = 0; i < spaceshipObject->as.spaceship.healthLoss - MAX_HEALTH; i++) { - Rectangle r = translateRectangle((Rectangle){(Vec2){getRandomNumber() % SPACESHIP_SIZE.x, getRandomNumber() % SPACESHIP_SIZE.y}, (Vec2){8, 8}}, spaceshipObject->position); + Rectangle r = translateRectangle( + (Rectangle){(Vec2){getRandomNumber() % SPACESHIP_SIZE.x, getRandomNumber() % SPACESHIP_SIZE.y}, (Vec2){8, 8}}, + spaceshipObject->position + ); if (areIntersecting(r, WINDOW)) { drawFilledRectangle(r, 0xFF, 0x00); }