| 1513 | } |
| 1514 | |
| 1515 | void zNPCCommon::ParseINI() |
| 1516 | { |
| 1517 | NPCConfig* cfg = this->cfg_npc; |
| 1518 | |
| 1519 | this->TagVerts(); |
| 1520 | |
| 1521 | for (S32 i = NPC_PARM_MOVERATE; i < NPC_PARM_ENDTAG_INI; i++) |
| 1522 | { |
| 1523 | en_npcparm pid = (en_npcparm)i; |
| 1524 | |
| 1525 | switch (pid) |
| 1526 | { |
| 1527 | case NPC_PARM_ACCEL: |
| 1528 | this->GetParm(pid, &cfg->fac_accelMax); |
| 1529 | break; |
| 1530 | case NPC_PARM_DRIFT: |
| 1531 | this->GetParm(pid, &cfg->fac_driftMax); |
| 1532 | break; |
| 1533 | case NPC_PARM_MASS: |
| 1534 | this->GetParm(pid, &cfg->npcMass); |
| 1535 | if (cfg->npcMass < 0.5f) |
| 1536 | { |
| 1537 | cfg->npcMass = 0.5f; |
| 1538 | } |
| 1539 | cfg->npcMassInv = 1.0f / cfg->npcMass; |
| 1540 | break; |
| 1541 | case NPC_PARM_TOSSELASTIC: |
| 1542 | this->GetParm(pid, &cfg->fac_elastic); |
| 1543 | break; |
| 1544 | case NPC_PARM_TOSSGRAV: |
| 1545 | this->GetParm(pid, &cfg->fac_gravKnock); |
| 1546 | break; |
| 1547 | case NPC_PARM_HITPOINTS: |
| 1548 | this->GetParm(pid, &cfg->pts_damage); |
| 1549 | break; |
| 1550 | case NPC_PARM_BND_ISBOX: |
| 1551 | this->GetParm(pid, &cfg->useBoxBound); |
| 1552 | break; |
| 1553 | case NPC_PARM_BND_CENTER: |
| 1554 | this->GetParm(pid, &cfg->off_bound); |
| 1555 | break; |
| 1556 | case NPC_PARM_BND_EXTENT: |
| 1557 | this->GetParm(pid, &cfg->dim_bound); |
| 1558 | break; |
| 1559 | case NPC_PARM_MOVERATE: |
| 1560 | this->GetParm(pid, &cfg->spd_moveMax); |
| 1561 | break; |
| 1562 | case NPC_PARM_TURNRATE: |
| 1563 | { |
| 1564 | F32 fv = RAD2DEG(cfg->spd_turnMax); |
| 1565 | this->GetParm(pid, &fv); |
| 1566 | cfg->spd_turnMax = DEG2RAD(fv); |
| 1567 | break; |
| 1568 | } |
| 1569 | case NPC_PARM_MODELSCALE: |
| 1570 | this->GetParm(pid, &cfg->scl_model); |
| 1571 | break; |
| 1572 | case NPC_PARM_DETECT_RAD: |