> The relevant lines are: > (GET_RV(victim, DAM_GEN_INERTIA) = 50; > dam = 230; > dam *= (GET_RV(victim, DAM_GEN_INERTIA) / 100); > > After this line executes, dam = 0. In actuality, it should equal 115, since > (by my understanding of the order of evaluation) 50 divided by 100 equals > 1/2. 230 multiplied by 1/2 equals 115. Yes? > Dam is declared as an integer, right? For integers, 50/100 == 0. What you need to do is do this: dam *= GET_RV(victim, DAM_GEN_INERTIA); dam /= 100; this will get: 230 * 50 == 11500 11500 / 100 == 115 If you want to multiply integers by floats, you have to do stuff with powers of 10 :) -Axiem -axiem@swbell.net -AIM: Axiem +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 04/10/01 PDT