Use first persistant timer as display value in Horus modelselect (#5772)
[Horus] When selecting model, displays first permanent timer or 00:00 if none exist
This commit is contained in:
@@ -53,7 +53,10 @@ class ModelCell
|
|||||||
|
|
||||||
void load()
|
void load()
|
||||||
{
|
{
|
||||||
ModelHeader header;
|
PACK(struct {
|
||||||
|
ModelHeader header;
|
||||||
|
TimerData timers[MAX_TIMERS];
|
||||||
|
}) partialmodel;
|
||||||
const char * error = NULL;
|
const char * error = NULL;
|
||||||
|
|
||||||
buffer = new BitmapBuffer(BMP_RGB565, MODELCELL_WIDTH, MODELCELL_HEIGHT);
|
buffer = new BitmapBuffer(BMP_RGB565, MODELCELL_WIDTH, MODELCELL_HEIGHT);
|
||||||
@@ -61,10 +64,12 @@ class ModelCell
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strncmp(modelFilename, g_eeGeneral.currModelFilename, LEN_MODEL_FILENAME) == 0)
|
if (strncmp(modelFilename, g_eeGeneral.currModelFilename, LEN_MODEL_FILENAME) == 0) {
|
||||||
header = g_model.header;
|
memcpy(&partialmodel.header, &g_model.header, sizeof(partialmodel));
|
||||||
else
|
}
|
||||||
error = readModel(modelFilename, (uint8_t *)&header, sizeof(header));
|
else {
|
||||||
|
error = readModel(modelFilename, (uint8_t *)&partialmodel.header, sizeof(partialmodel));
|
||||||
|
}
|
||||||
|
|
||||||
buffer->clear(TEXT_BGCOLOR);
|
buffer->clear(TEXT_BGCOLOR);
|
||||||
|
|
||||||
@@ -73,7 +78,7 @@ class ModelCell
|
|||||||
buffer->drawBitmapPattern(5, 23, LBM_LIBRARY_SLOT, TEXT_COLOR);
|
buffer->drawBitmapPattern(5, 23, LBM_LIBRARY_SLOT, TEXT_COLOR);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
zchar2str(modelName, header.name, LEN_MODEL_NAME);
|
zchar2str(modelName, partialmodel.header.name, LEN_MODEL_NAME);
|
||||||
if (modelName[0] == 0) {
|
if (modelName[0] == 0) {
|
||||||
char * tmp;
|
char * tmp;
|
||||||
strncpy(modelName, modelFilename, LEN_MODEL_NAME);
|
strncpy(modelName, modelFilename, LEN_MODEL_NAME);
|
||||||
@@ -84,11 +89,17 @@ class ModelCell
|
|||||||
char timer[LEN_TIMER_STRING];
|
char timer[LEN_TIMER_STRING];
|
||||||
buffer->drawSizedText(5, 2, modelName, LEN_MODEL_NAME, SMLSIZE|TEXT_COLOR);
|
buffer->drawSizedText(5, 2, modelName, LEN_MODEL_NAME, SMLSIZE|TEXT_COLOR);
|
||||||
getTimerString(timer, 0);
|
getTimerString(timer, 0);
|
||||||
|
for (uint8_t i = 0; i < MAX_TIMERS; i++) {
|
||||||
|
if (partialmodel.timers[i].mode > 0 && partialmodel.timers[i].persistent) {
|
||||||
|
getTimerString(timer, partialmodel.timers[i].value);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
buffer->drawText(101, 40, timer, TEXT_COLOR);
|
buffer->drawText(101, 40, timer, TEXT_COLOR);
|
||||||
for (int i=0; i<4; i++) {
|
for (int i=0; i<4; i++) {
|
||||||
buffer->drawBitmapPattern(104+i*11, 25, LBM_SCORE0, TITLE_BGCOLOR);
|
buffer->drawBitmapPattern(104+i*11, 25, LBM_SCORE0, TITLE_BGCOLOR);
|
||||||
}
|
}
|
||||||
GET_FILENAME(filename, BITMAPS_PATH, header.bitmap, "");
|
GET_FILENAME(filename, BITMAPS_PATH, partialmodel.header.bitmap, "");
|
||||||
const BitmapBuffer * bitmap = BitmapBuffer::load(filename);
|
const BitmapBuffer * bitmap = BitmapBuffer::load(filename);
|
||||||
if (bitmap) {
|
if (bitmap) {
|
||||||
buffer->drawScaledBitmap(bitmap, 5, 24, 56, 32);
|
buffer->drawScaledBitmap(bitmap, 5, 24, 56, 32);
|
||||||
|
|||||||
Reference in New Issue
Block a user