aboutsummaryrefslogtreecommitdiff
path: root/advtrains
Commit message (Expand)AuthorAge
* Add setting for death behavior and implement damage checks betterorwell962019-03-09
* Configurable interval for get_off setpos and door pos fix for japanese trainorwell962019-03-09
* Restore old door status display behaviororwell962019-03-09
* Prioritize LZB callback (possible bugfix for H#100)orwell962019-02-19
* Fix stop rails sometimes not sending stop commandorwell962019-02-16
* No crash when train does not exist on check_collision()orwell962019-02-06
* Fix slope placer protectionorwell962019-02-05
* Force LZB Halt settingorwell962019-02-05
* Fix sending empty ATC commandsorwell962019-02-05
* Basic functions of "stop rail", missing ARS rules and signal.orwell962019-01-24
* Point speed restriction railsorwell962019-01-24
* Possible fix for braking problems + debug outputsorwell962019-01-23
* Fix last commit (and another warn2log)orwell962019-01-22
* Fix atc command evaluation BB commandorwell962019-01-22
* output step distance in train (debugging purposes)orwell962019-01-22
* Fix small bug in routeui and make another message log-onlyorwell962019-01-22
* Make "Can't restore train" a log message instead of atwarn()orwell962019-01-22
* Fix dropping of items on wagon destroyorwell962019-01-22
* Warn when something clears the path winthin train steporwell962019-01-22
* Revert "Correct last commit"orwell962019-01-22
* Revert "Debugging code to trace down path_invalidate within callbacks error"orwell962019-01-22
* Revert "Index NaN check (tracking obscure error detected on LW migration)"orwell962019-01-22
* Fix for path invalidation within update callbacks (issue was caused by detect...orwell962019-01-22
* Correct last commitorwell962019-01-22
* Debugging code to trace down path_invalidate within callbacks errororwell962019-01-22
* Workaroundorwell962019-01-21
* Do not run train steps when path has been deletedorwell962019-01-21
* Avoid division through zero in get_accelerationorwell962019-01-21
* Index NaN check (tracking obscure error detected on LW migration)orwell962019-01-21
* Additional info print for path_print()orwell962019-01-21
* Do not clear tarvelocity when setting new, potential no-op commandorwell962019-01-15
* Add "routingcode" propertyorwell962019-01-09
* Make track protection radius configurableorwell962018-12-18
* Fix player_to_train_mapping (H#74)orwell962018-12-16
* Fix 144e1fc4e01741f8cdd5a579ae84cde85c420d78 (there's no self in one of the i...orwell962018-12-10
* Fix crashes:orwell962018-12-10
* Change get_inventory_formspec API - add invname parameterorwell962018-12-10
* Shunt signals (not exactly Ks), along with fixes in other components that tho...orwell962018-12-08
* Apply speed restriction 0.5 indexes later, do not cap tarvelocity by speed_re...orwell962018-12-04
* Added on_train_approach callback, non-permanent external LZB brakepoints and ...orwell962018-11-29
* Implement new position encoding function and benchmark itorwell962018-11-29
* Fix discouple positioning when wagon was just loadedorwell962018-11-20
* Remove superfluous "tarvelocity" assignmentsorwell962018-11-20
* Make "Line" property accessible from OBC and gettable via LATC, change subway...orwell962018-11-20
* Remove debug printorwell962018-11-20
* Fix protection regarding tracks (track_builder and railway_operator) and docu...orwell962018-11-12
* Increase savefile version to 2orwell962018-11-10
* Remove "couple locks" and apply protection to the actual coupling process, an...orwell962018-11-10
* No static_save for discouple entitiesorwell962018-10-30
* Document fix 0a982b6356b2f4b6a28e74f9f90c4f584169a96dorwell962018-10-29
m">10, 22+15, 29+20, 37+20, 47+15, 60+10, 76+7, 97+5, 123+2, 157, 200, 255, }; const u8 *light_decode_table = light_LUT; /** Initialize or update the light value tables using the specified \p gamma. * If \p gamma == 1.0 then the light table is linear. Typically values for * gamma range between 1.8 and 2.2. * * @note The value for gamma will be restricted to the range 1.1 <= gamma <= 3.0. * * @note This function is not, currently, a simple linear to gamma encoding * because adjustments are made so that a gamma of 1.8 gives the same * results as those hardcoded for use by the server. */ void set_light_table(float gamma) { static const float brightness_step = 255.0f / (LIGHT_MAX + 1); /* These are adjustment values that are added to the calculated light value * after gamma is applied. Currently they are used so that given a gamma * of 1.8 the light values set by this function are the same as those * hardcoded in the initalizer list for the declaration of light_LUT. */ static const int adjustments[LIGHT_MAX + 1] = { 7, 7, 7, 5, 2, 0, -7, -20, -31, -39, -43, -45, -40, -25, 0 }; gamma = rangelim(gamma, 1.0, 3.0); float brightness = brightness_step; for (size_t i = 0; i < LIGHT_MAX; i++) { light_LUT[i] = (u8)(255 * powf(brightness / 255.0f, gamma)); light_LUT[i] = rangelim(light_LUT[i] + adjustments[i], 0, 255); if (i > 1 && light_LUT[i] < light_LUT[i-1]) light_LUT[i] = light_LUT[i-1] + 1; brightness += brightness_step; } light_LUT[LIGHT_MAX] = 255; } #endif #if 0 /* Made using this and: - adding 220 as the second last one - replacing the third last one (212) with 195 #!/usr/bin/python from math import * from sys import stdout # We want 0 at light=0 and 255 at light=LIGHT_MAX LIGHT_MAX = 14 #FACTOR = 0.69 #FACTOR = 0.75 FACTOR = 0.83 START_FROM_ZERO = False L = [] if START_FROM_ZERO: for i in range(1,LIGHT_MAX+1): L.append(int(round(255.0 * FACTOR ** (i-1)))) L.append(0) else: for i in range(1,LIGHT_MAX+1): L.append(int(round(255.0 * FACTOR ** (i-1)))) L.append(255) L.reverse() for i in L: stdout.write(str(i)+",\n") */ u8 light_decode_table[LIGHT_MAX+1] = { 23, 27, 33, 40, 48, 57, 69, 83, 100, 121, 146, 176, 195, 220, 255, }; #endif #if 0 // This is good // a_n+1 = a_n * 0.786 // Length of LIGHT_MAX+1 means LIGHT_MAX is the last value. // LIGHT_SUN is read as LIGHT_MAX from here. u8 light_decode_table[LIGHT_MAX+1] = { 8, 11, 14, 18, 22, 29, 37, 47, 60, 76, 97, 123, 157, 200, 255, }; #endif #if 0 // Use for debugging in dark u8 light_decode_table[LIGHT_MAX+1] = { 58, 64, 72, 80, 88, 98, 109, 121, 135, 150, 167, 185, 206, 229, 255, }; #endif // This is reasonable with classic lighting with a light source /*u8 light_decode_table[LIGHT_MAX+1] = { 2, 3, 4, 6, 9, 13, 18, 25, 32, 35, 45, 57, 69, 79, 255 };*/ // As in minecraft, a_n+1 = a_n * 0.8 // NOTE: This doesn't really work that well because this defines // LIGHT_MAX as dimmer than LIGHT_SUN // NOTE: Uh, this has had 34 left out; forget this. /*u8 light_decode_table[LIGHT_MAX+1] = { 8, 11, 14, 17, 21, 27, 42, 53, 66, 83, 104, 130, 163, 204, 255, };*/ // This was a quick try of more light, manually quickly made /*u8 light_decode_table[LIGHT_MAX+1] = { 0, 7, 11, 15, 21, 29, 42, 53, 69, 85, 109, 135, 167, 205, 255, };*/ // This was used for a long time, manually made /*u8 light_decode_table[LIGHT_MAX+1] = { 0, 6, 8, 11, 14, 19, 26, 34, 45, 61, 81, 108, 143, 191, 255, };*/ /*u8 light_decode_table[LIGHT_MAX+1] = { 0, 3, 6, 10, 18, 25, 35, 50, 75, 95, 120, 150, 185, 215, 255, };*/ /*u8 light_decode_table[LIGHT_MAX+1] = { 0, 5, 12, 22, 35, 50, 65, 85, 100, 120, 140, 160, 185, 215, 255, };*/ // LIGHT_MAX is 14, 0-14 is 15 values /*u8 light_decode_table[LIGHT_MAX+1] = { 0, 9, 12, 14, 16, 20, 26, 34, 45, 61, 81, 108, 143, 191,