| 82 | } |
| 83 | |
| 84 | void zLightningInit() |
| 85 | { |
| 86 | for (S32 i = 0; i < NUM_LIGHTNING; i++) |
| 87 | { |
| 88 | sLightning[i] = NULL; |
| 89 | } |
| 90 | |
| 91 | zSceneFindObject(xStrHash("PAREMIT_EG_SPARK")); |
| 92 | RwTexture* tex = (RwTexture*)xSTFindAsset(xStrHash("LIGHTNING"), NULL); |
| 93 | if (tex != NULL) |
| 94 | { |
| 95 | sLightningRaster = tex->raster; |
| 96 | } |
| 97 | |
| 98 | for (S32 i = 0; i < 9; i++) |
| 99 | { |
| 100 | sLFuncX[i].next = &sLFuncX[i + 1]; |
| 101 | sLFuncY[i].next = &sLFuncY[i + 2]; |
| 102 | sLFuncZ[i].next = &sLFuncZ[i + 3]; |
| 103 | } |
| 104 | |
| 105 | sLFuncX[9].next = NULL; |
| 106 | sLFuncY[9].next = NULL; |
| 107 | sLFuncZ[9].next = NULL; |
| 108 | |
| 109 | for (S32 i = 0; i < 10; i++) { |
| 110 | xVec3Init(&sLFuncVal[i], 2.0f * (xurand() - 0.5f), 2.0f * (xurand() - 0.5f), 2.0f * (xurand() - 0.5f)); |
| 111 | xVec3Init(&sLFuncSlope[i][0], sLFuncSlopeRange * (2.0f * (xurand() - 0.5f)), sLFuncSlopeRange * (2.0f * (xurand() - 0.5f)), sLFuncSlopeRange * (2.0f * (xurand() - 0.5f))); |
| 112 | xVec3Init(&sLFuncSlope[i][1], sLFuncSlopeRange * (2.0f * (xurand() - 0.5f)), sLFuncSlopeRange * (2.0f * (xurand() - 0.5f)), sLFuncSlopeRange * (2.0f * (xurand() - 0.5f))); |
| 113 | |
| 114 | sLFuncEnd[i] = 0.25f * (xurand() - 0.5f) + (i + 1); |
| 115 | } |
| 116 | |
| 117 | sLFuncEnd[9] = 10.0f; |
| 118 | |
| 119 | for (S32 i = 0; i < 10; i++) |
| 120 | { |
| 121 | S32 j; |
| 122 | F32 prevEnd; |
| 123 | if (i == 0) |
| 124 | { |
| 125 | prevEnd = 0.0f; |
| 126 | j = 9; |
| 127 | } |
| 128 | else |
| 129 | { |
| 130 | j = i - 1; |
| 131 | prevEnd = sLFuncEnd[j]; |
| 132 | } |
| 133 | |
| 134 | xFuncPiece_EndPoints(&sLFuncX[i], prevEnd, sLFuncEnd[i], sLFuncVal[i].x, sLFuncVal[j].x); |
| 135 | xFuncPiece_EndPoints(&sLFuncY[i], prevEnd, sLFuncEnd[i], sLFuncVal[i].y, sLFuncVal[j].y); |
| 136 | xFuncPiece_EndPoints(&sLFuncZ[i], prevEnd, sLFuncEnd[i], sLFuncVal[i].z, sLFuncVal[j].z); |
| 137 | } |
| 138 | |
| 139 | sLFuncJerkTime = 0.0f; |
| 140 | |
| 141 | gLightningTweakAddInfo.type = 0x3; |
no test coverage detected