* Save/load a std::deque. * @param deque The std::deque being manipulated * @param conv VarType type of variable that is used for calculating the size */
| 1526 | * @param conv VarType type of variable that is used for calculating the size |
| 1527 | */ |
| 1528 | static void SlDeque(void *deque, VarType conv) |
| 1529 | { |
| 1530 | switch (GetVarMemType(conv)) { |
| 1531 | case SLE_VAR_BL: SlStorageHelper<std::deque, bool>::SlSaveLoad(deque, conv); break; |
| 1532 | case SLE_VAR_I8: SlStorageHelper<std::deque, int8_t>::SlSaveLoad(deque, conv); break; |
| 1533 | case SLE_VAR_U8: SlStorageHelper<std::deque, uint8_t>::SlSaveLoad(deque, conv); break; |
| 1534 | case SLE_VAR_I16: SlStorageHelper<std::deque, int16_t>::SlSaveLoad(deque, conv); break; |
| 1535 | case SLE_VAR_U16: SlStorageHelper<std::deque, uint16_t>::SlSaveLoad(deque, conv); break; |
| 1536 | case SLE_VAR_I32: SlStorageHelper<std::deque, int32_t>::SlSaveLoad(deque, conv); break; |
| 1537 | case SLE_VAR_U32: SlStorageHelper<std::deque, uint32_t>::SlSaveLoad(deque, conv); break; |
| 1538 | case SLE_VAR_I64: SlStorageHelper<std::deque, int64_t>::SlSaveLoad(deque, conv); break; |
| 1539 | case SLE_VAR_U64: SlStorageHelper<std::deque, uint64_t>::SlSaveLoad(deque, conv); break; |
| 1540 | |
| 1541 | case SLE_VAR_STR: |
| 1542 | /* Strings are a length-prefixed field type in the savegame table format, |
| 1543 | * these may not be directly stored in another length-prefixed container type. |
| 1544 | * This is permitted for load-related actions, because invalid fields of this type are present |
| 1545 | * from SLV_COMPANY_ALLOW_LIST up to SLV_COMPANY_ALLOW_LIST_V2. */ |
| 1546 | assert(_sl.action != SLA_SAVE); |
| 1547 | SlStorageHelper<std::deque, std::string>::SlSaveLoad(deque, conv, SL_STDSTR); |
| 1548 | break; |
| 1549 | |
| 1550 | default: NOT_REACHED(); |
| 1551 | } |
| 1552 | } |
| 1553 | |
| 1554 | /** |
| 1555 | * Return the size in bytes of a std::vector. |
no test coverage detected