MCPcopy Create free account
hub / github.com/OpenTTD/OpenTTD / SlDeque

Function SlDeque

src/saveload/saveload.cpp:1528–1552  ·  view source on GitHub ↗

* 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 */

Source from the content-addressed store, hash-verified

1526 * @param conv VarType type of variable that is used for calculating the size
1527 */
1528static 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.

Callers 1

SlObjectMemberFunction · 0.85

Calls 2

GetVarMemTypeFunction · 0.85
NOT_REACHEDFunction · 0.85

Tested by

no test coverage detected