============ idVarDef::SetValue ============ */
| 663 | ============ |
| 664 | */ |
| 665 | void idVarDef::SetValue( const eval_t &_value, bool constant ) { |
| 666 | assert( typeDef ); |
| 667 | if ( constant ) { |
| 668 | initialized = initializedConstant; |
| 669 | } else { |
| 670 | initialized = initializedVariable; |
| 671 | } |
| 672 | |
| 673 | switch( typeDef->Type() ) { |
| 674 | case ev_pointer : |
| 675 | case ev_boolean : |
| 676 | case ev_field : |
| 677 | *value.intPtr = _value._int; |
| 678 | break; |
| 679 | |
| 680 | case ev_jumpoffset : |
| 681 | value.jumpOffset = _value._int; |
| 682 | break; |
| 683 | |
| 684 | case ev_argsize : |
| 685 | value.argSize = _value._int; |
| 686 | break; |
| 687 | |
| 688 | case ev_entity : |
| 689 | *value.entityNumberPtr = _value.entity; |
| 690 | break; |
| 691 | |
| 692 | case ev_string : |
| 693 | idStr::Copynz( value.stringPtr, _value.stringPtr, MAX_STRING_LEN ); |
| 694 | break; |
| 695 | |
| 696 | case ev_float : |
| 697 | *value.floatPtr = _value._float; |
| 698 | break; |
| 699 | |
| 700 | case ev_vector : |
| 701 | value.vectorPtr->x = _value.vector[ 0 ]; |
| 702 | value.vectorPtr->y = _value.vector[ 1 ]; |
| 703 | value.vectorPtr->z = _value.vector[ 2 ]; |
| 704 | break; |
| 705 | |
| 706 | case ev_function : |
| 707 | value.functionPtr = _value.function; |
| 708 | break; |
| 709 | |
| 710 | case ev_virtualfunction : |
| 711 | value.virtualFunction = _value._int; |
| 712 | break; |
| 713 | |
| 714 | case ev_object : |
| 715 | *value.entityNumberPtr = _value.entity; |
| 716 | break; |
| 717 | |
| 718 | default : |
| 719 | throw idCompileError( va( "weird type on '%s'", Name() ) ); |
| 720 | break; |
| 721 | } |
| 722 | } |
no test coverage detected